7

Rust プログラムの Docker コンテナを作成しようとしています。

Dockerfile

FROM debian

RUN apt-get update && \
    apt-get -y upgrade && \
    apt-get -y install git curl g++ build-essential

RUN curl https://sh.rustup.rs -sSf | bash -s -- -y

WORKDIR /usr/src/app

RUN git clone https://github.com/unegare/rust-actix-rest.git

RUN ["/bin/bash", "-c", "source $HOME/.cargo/env; cd ./rust-actix-rest/; cargo build --release; mkdir uploaded"]

EXPOSE 8080

ENTRYPOINT ["/bin/bash", "-c", "echo 'Hello there!'; source $HOME/.cargo/env; cd ./rust-actix-rest/; cargo run --release"]

実行するコマンド:docker run -it -p 8080:8080 rust_rest_api/dev

しかし、外部からのカールは、つまり、チャネルの反対側で拒否されcurl -i -X POST -F files[]=@img.png 127.0.0.1:8080/uploadますcurl: (56) Recv failure: Соединение разорвано другой стороной

しかし、コンテナ内:

root@43598d5d9e85:/usr/src/app# lsof -i
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
actix_003   6 root    3u  IPv4 319026      0t0  TCP localhost:http-alt (LISTEN)

ただし、docker なしでプログラムを実行すると、適切に機能し、curl からの同じ要求を適切に処理します。

そしてコンテナ内:

root@43598d5d9e85:/usr/src/app# curl -i -X POST -F files[]=@i.jpg 127.0.0.1:8080/upload
HTTP/1.1 100 Continue

HTTP/1.1 201 Created
content-length: 70
content-type: application/json
date: Wed, 24 Jul 2019 08:00:54 GMT

{"keys":["uploaded/5nU1nHznvKRGbkQaWAGJKpLSG4nSAYfzCdgMxcx4U2mF.jpg"]}

外部からの問題は何ですか?

4

2 に答える 2