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"]
我一直在尝试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"]