python:can';t打开文件';manage.py';:[Errno 2]撰写docker时没有此类文件或目录

python:can';t打开文件';manage.py';:[Errno 2]撰写docker时没有此类文件或目录,python,docker,flask,Python,Docker,Flask,我在容器中运行两个不同的应用程序 Django应用程序 烧瓶应用程序 德扬戈跑得很好。我将我的Flask应用程序配置如下: 这是docker-compose.yml version: '3.8' services: backend: build: context: . dockerfile: Dockerfile ports: - 8001:5000 volumes: - .:/app depends_on:

我在容器中运行两个不同的应用程序

  • Django应用程序
  • 烧瓶应用程序
  • 德扬戈跑得很好。我将我的Flask应用程序配置如下:

    这是docker-compose.yml

    version: '3.8'
    services:
      backend:
        build:
          context: .
          dockerfile: Dockerfile
        ports:
          - 8001:5000
        volumes:
          - .:/app
        depends_on:
          - db
    
      db:
        image: mysql:5.7.22
        restart: always
        environment:
          MYSQL_DATABASE: main
          MYSQL_USER: username
          MYSQL_PASSWORD: pwd
          MYSQL_ROOT_PASSWORD: pwd
        volumes:
          - .dbdata:/var/lib/mysql
        ports:
          - 33067:3306
    
    这也是我的Dockerfile

    FROM python:3.8
    ENV PYTHONUNBUFFERED 1
    WORKDIR /app
    COPY requirements.txt /app/requirements.txt
    RUN pip install -r requirements.txt
    COPY . /app
    
    CMD python main.py
    
    问题:当我跑步的时候
    docker compose up
    发生以下错误

    backend_1  | python: can't open file 'manage.py': [Errno 2] No such file or directory
    

    我不知道为什么它会尝试打开
    manage.py
    文件,因为它是Flask而不是Django应用程序。我需要你的帮助。提前谢谢。

    我不知道确切的原因,但我启动了一个新的Flask应用程序(但这次是在virtualenv上),我的问题得到了解决:)

    我不确定这对您有何作用,但我通过将我的docker-compose.yml更改为一个命令参数来解决了这个问题,所以看起来是这样的

    version: '3.8'
    services:
      backend:
        build:
          context: .
          dockerfile: Dockerfile
        command: 'python main.py' << Updated Line >>
        ports:
          - 8001:5000
        volumes:
          - .:/app
        depends_on:
          - db
    
      db:
        image: mysql:5.7.22
        restart: always
        environment:
          MYSQL_DATABASE: main
          MYSQL_USER: username
          MYSQL_PASSWORD: pwd
          MYSQL_ROOT_PASSWORD: pwd
        volumes:
          - .dbdata:/var/lib/mysql
        ports:
          - 33067:3306
    
    版本:“3.8”
    服务:
    后端:
    建造:
    上下文:。
    dockerfile:dockerfile
    命令:“python main.py”>
    端口:
    - 8001:5000
    卷数:
    -.:/app
    取决于:
    -分贝
    db:
    图片:mysql:5.7.22
    重新启动:始终
    环境:
    MYSQL_数据库:main
    MYSQL\u用户:用户名
    密码:pwd
    MYSQL\u ROOT\u密码:pwd
    卷数:
    -.dbdata:/var/lib/mysql
    端口:
    - 33067:3306
    
    manage.py可能是您项目的根目录(目录与requirements.txt相同)。您是否尝试将
    COPY manage.py/app/manage.py
    添加到dockerfile中?这是flask还是django?@tendousb
    manage.py
    位于django项目,一个与flask应用程序截然不同的文件夹