docker 对接-组合:“没有名为app的模块”,尽管app.pyapp目录中存在www.example.com

of1yzvn4  于 2023-03-17  发布在  Docker
关注(0)|答案(1)|浏览(116)

我正在构建一个简单的Flask webapp,它可以在开发服务器上正常工作,但是当我尝试将它构建到Docker容器中时,我在控制台中遇到了这个错误:ModuleNotFoundError: No module named 'app'
我的基本文件夹结构如下所示:

appdir/
    app.py
    dockerfile
    docker-compose
    sqlite-db/
        app.db

Here's my dockerfile:

```bash
# syntax=docker/dockerfile:1
FROM python:3.11.2-slim-bullseye

RUN apt-get update -y
RUN apt-get install python3-pip -y
RUN apt-get install gunicorn3 -y

COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt

COPY . .

WORKDIR /python-docker

CMD ["gunicorn3", "-b", "0.0.0.0:8000", "app.py", "--workers=5"]

这是我的音乐作曲:

version: "3.8"

services:
  anonymous-flaskapp:
    build:
      context: .
    ports:
      - 8000:8000
    network_mode: host
    volumes:
      - ./sqlite-db/app.db:/app/sqlite-db

我试过添加和删除

if __name__ == "__main__":
    app.run(debug=True)

app.py文件,但这没有任何作用。

0x6upsns

0x6upsns1#

您的问题是您正在复制当前目录(即appdir)到container(COPY . .)的根目录中,但之后您将工作目录WORKDIR /python-docker更改为不存在的目录。因此,app.py不存在于其中。
一种解决方案是将源文件复制到指定目录中:

COPY . /python-docker/
WORKDIR /python-docker/

相关问题