我正在构建一个简单的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
文件,但这没有任何作用。
1条答案
按热度按时间0x6upsns1#
您的问题是您正在复制当前目录(即
appdir
)到container(COPY . .
)的根目录中,但之后您将工作目录WORKDIR /python-docker
更改为不存在的目录。因此,app.py
不存在于其中。一种解决方案是将源文件复制到指定目录中: