这是我创建的docker镜像
FROM ubuntu:20.04
WORKDIR /app
COPY . /app
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get install -y wget && \
apt-get install -y libgtk2.0-dev
RUN mkdir -p ~/miniconda3
RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh && \
bash miniconda.sh -b -p /opt/miniconda && \
rm miniconda.sh
ENV PATH /opt/miniconda/bin:$PATH
COPY environment.yaml /app/environment.yaml
RUN conda env create -f /app/environment.yaml
CMD ["/bin/bash", "-c", "source /opt/miniconda/etc/profile.d/conda.sh && conda activate my-env && python APIWrapper.py"]
当我运行docker镜像时,容器运行成功,但是当我测试应用程序的端点时,它无法正常工作,
启动应用程序:
$ docker run -p 5000:5000 sample-img:1.0
* Serving Flask app 'APIWrapper' (lazy loading)
...
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
测试应用程序:
$ curl http://127.0.0.1:5000/extract?contractPath=/app/input/AWS.pdf
curl: (56) Recv failure: Connection reset by peer
已尝试使用端口映射并安装包含我的文件的卷,但两者都不起作用
要从容器外部访问端点,您必须在特殊主机 IP 0.0.0.0 而不是 127.0.0.1 上启动应用程序,127.0.0.1 是正在运行的容器的 IP,而不是主机的 IP。