指定 API 路径的 Dockerfile
Dockerfile specifying path of API
我是第一次使用 docker。我在 angular 中有一个 Web 应用程序,在 python/flask 中有一个后端应用程序。经过一番努力,我终于设法让一切正常工作,但是 docker 在我的后端找不到我的 API 程序:
我的服务器文件位于 /my_backend/src/server.py
我的 docker 文件位于 /my_backend/Dockerfile.dockerfile
Dockerfile.dockerfile的内容:
FROM python:3.7-slim
COPY /src .
WORKDIR /src/app
ENV PYTHONUNBUFFERED 1
COPY requirements.txt /tmp/requirements.txt
RUN python3 -m pip install -r /tmp/requirements.txt
CMD ["python","server.py"]
命令提示符中的错误信息是
Attaching to backend, frontend
backend | python: can't open file 'server.py': [Errno 2] No such file or directory
backend exited with code 2
欢迎随时询问更多信息。
我使用了这个教程:https://medium.com/analytics-vidhya/dockerizing-angular-application-and-python-backend-bottle-flask-framework-21dcbf8715e5
如果您的脚本在 /src
目录中,请不要使用 WORKDIR /src/app
,而是使用 WORKDIR /src
或 CMD ["python","../server.py"]
解决方案 1:
FROM python:3.7-slim
COPY /src .
WORKDIR /src # <- HERE
ENV PYTHONUNBUFFERED 1
COPY requirements.txt /tmp/requirements.txt
RUN python3 -m pip install -r /tmp/requirements.txt
CMD ["python","server.py"]
解决方案 2:
FROM python:3.7-slim
COPY /src .
WORKDIR /src/app
ENV PYTHONUNBUFFERED 1
COPY requirements.txt /tmp/requirements.txt
RUN python3 -m pip install -r /tmp/requirements.txt
CMD ["python","../server.py"] # <- HERE, or "/src/server.py"
@TheFool 建议:
FROM python:3.7-slim
WORKDIR /src/app # Swap WORKDIR and COPY
COPY /src .
ENV PYTHONUNBUFFERED 1
COPY requirements.txt /tmp/requirements.txt
RUN python3 -m pip install -r /tmp/requirements.txt
CMD ["python","server.py"]
转动你的工作目录并复制指令以使其工作。
FROM python:3.7-slim
WORKDIR /src/app # workdir first
COPY /src .
ENV PYTHONUNBUFFERED 1
COPY requirements.txt /tmp/requirements.txt
RUN python3 -m pip install -r /tmp/requirements.txt
CMD ["python","server.py"]
我是第一次使用 docker。我在 angular 中有一个 Web 应用程序,在 python/flask 中有一个后端应用程序。经过一番努力,我终于设法让一切正常工作,但是 docker 在我的后端找不到我的 API 程序:
我的服务器文件位于 /my_backend/src/server.py
我的 docker 文件位于 /my_backend/Dockerfile.dockerfile
Dockerfile.dockerfile的内容:
FROM python:3.7-slim
COPY /src .
WORKDIR /src/app
ENV PYTHONUNBUFFERED 1
COPY requirements.txt /tmp/requirements.txt
RUN python3 -m pip install -r /tmp/requirements.txt
CMD ["python","server.py"]
命令提示符中的错误信息是
Attaching to backend, frontend
backend | python: can't open file 'server.py': [Errno 2] No such file or directory
backend exited with code 2
欢迎随时询问更多信息。
我使用了这个教程:https://medium.com/analytics-vidhya/dockerizing-angular-application-and-python-backend-bottle-flask-framework-21dcbf8715e5
如果您的脚本在 /src
目录中,请不要使用 WORKDIR /src/app
,而是使用 WORKDIR /src
或 CMD ["python","../server.py"]
解决方案 1:
FROM python:3.7-slim
COPY /src .
WORKDIR /src # <- HERE
ENV PYTHONUNBUFFERED 1
COPY requirements.txt /tmp/requirements.txt
RUN python3 -m pip install -r /tmp/requirements.txt
CMD ["python","server.py"]
解决方案 2:
FROM python:3.7-slim
COPY /src .
WORKDIR /src/app
ENV PYTHONUNBUFFERED 1
COPY requirements.txt /tmp/requirements.txt
RUN python3 -m pip install -r /tmp/requirements.txt
CMD ["python","../server.py"] # <- HERE, or "/src/server.py"
@TheFool 建议:
FROM python:3.7-slim
WORKDIR /src/app # Swap WORKDIR and COPY
COPY /src .
ENV PYTHONUNBUFFERED 1
COPY requirements.txt /tmp/requirements.txt
RUN python3 -m pip install -r /tmp/requirements.txt
CMD ["python","server.py"]
转动你的工作目录并复制指令以使其工作。
FROM python:3.7-slim
WORKDIR /src/app # workdir first
COPY /src .
ENV PYTHONUNBUFFERED 1
COPY requirements.txt /tmp/requirements.txt
RUN python3 -m pip install -r /tmp/requirements.txt
CMD ["python","server.py"]