【问题标题】:docker backend app not recognized in the folder文件夹中无法识别 docker 后端应用程序
【发布时间】:2021-11-09 15:19:21
【问题描述】:

this 之后,我一直在尝试使用 python 后端对 Angular 应用程序进行 dockerize。除了 docker-compose 文件,我做了所有的事情,它说我的 app.py 不在文件夹中。

我的 python 应用程序位于“C:\Users\Fra\Desktop\Fra\uni\Tesi\Progetto\backend”中

我的 Angular 应用程序位于 'C:\Users\Fra\Desktop\Fra\uni\Tesi\Progetto\frontend'

我要把 dockerfiles 留给你,这应该会有所帮助

('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"

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

【问题讨论】:

    标签: python angular docker docker-compose dockerfile


    【解决方案1】:

    您的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"]
    

    【讨论】:

    • Traceback(最近一次调用最后一次):后端 | 后端中的文件“app.py”,第 2 行 |导入 geopandas 作为 gpd 后端ModuleNotFoundError:即使安装了模块,也没有名为“geopandas”的模块(?)
    • 这是不同的问题。与 Docker 和当前问题无关,但与 python 和您的应用程序本身无关。如果您需要 python 模块的答案,请接受答案并打开另一个问题。
    猜你喜欢
    • 2021-09-07
    • 1970-01-01
    • 2018-03-13
    • 2021-12-10
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多