docker 文件夹中无法识别后端应用程序

docker backend app not recognized in the folder

我一直在尝试docker使用 python 后端 this 来处理 angular 应用程序。除了 docker-compose 文件,我都做了,它说我的 app.py 不在文件夹中。

我的 python 应用程序在 'C:\Users\Fra\Desktop\Fra\uni\Tesi\Progetto\backend'

我的 angular 应用程序在 'C:\Users\Fra\Desktop\Fra\uni\Tesi\Progetto\frontend'

我要给你留下 docker 文件,应该会有帮助

('Dockerfile'放在后端文件夹)

FROM python:3.7-slim
COPY ./ /Users/Fra/Desktop/Fra/uni/Tesi/Progetto/backend/
WORKDIR /Users/Fra/Desktop/Fra/uni/Tesi/Progetto
ENV PYTHONUNBUFFERED 1
RUN pip freeze > /requirements.txt
CMD ["python","app.py"] 

('Dockerfile'放在前端文件夹)

FROM nginx:1.17.1-alpine
COPY /dist/macroPlan /usr/share/nginx/html 

('docker-compose'放在/Progetto/文件夹)

version: "3.3"
services:
    app-backend:
        build: ./backend/
        image: app_backend
        container_name: backend
        restart: always
        ports:
            - 8082:8082
    app-frontend:
        build: ./frontend/
        image: macroplan
        container_name: frontend
        restart: always
        ports:
            - 4200:4200
        expose:
            - "4200"

这是我第一次做这样的事情,我错过了什么?

您的 WORKDIR/Users/Fra/Desktop/Fra/uni/Tesi/Progetto,但您的 app.py 文件(在 CMD 中启动容器所需)位于 /Users/Fra/Desktop/Fra/uni/Tesi/Progetto/backend/ 文件夹中。

将您的后端 Dockerfile 重写为:

FROM python:3.7-slim
COPY ./ /Users/Fra/Desktop/Fra/uni/Tesi/Progetto/backend/
WORKDIR /Users/Fra/Desktop/Fra/uni/Tesi/Progetto/backend/
ENV PYTHONUNBUFFERED 1
RUN pip freeze > /requirements.txt
CMD ["python","app.py"]

或者如果您出于某种原因想要使用不同的工作目录,则必须为您的 app.py 文件指定正确的路径:

FROM python:3.7-slim
COPY ./ /Users/Fra/Desktop/Fra/uni/Tesi/Progetto/backend/
WORKDIR /Users/Fra/Desktop/Fra/uni/Tesi/Progetto
ENV PYTHONUNBUFFERED 1
RUN pip freeze > /requirements.txt
CMD ["python","./backend/app.py"]