Python Docker CMD未执行,程序未运行

Python Docker CMD未执行,程序未运行,python,docker,data-science,Python,Docker,Data Science,所以我有一个python项目,我有一个Dockerfile,但问题是出于某种神奇的原因,当我构建docker映像并运行它时,我看不到代码的结果,如果我只是在pycharm或控制台上正常运行它,有人知道为什么会发生这种情况吗?真奇怪 FROM python:3.8-slim-buster WORKDIR /app COPY requirements.txt requirements.txt COPY . /app RUN pip3 install -r requirements.txt CMD [

所以我有一个python项目,我有一个Dockerfile,但问题是出于某种神奇的原因,当我构建docker映像并运行它时,我看不到代码的结果,如果我只是在pycharm或控制台上正常运行它,有人知道为什么会发生这种情况吗?真奇怪

FROM python:3.8-slim-buster
WORKDIR /app
COPY requirements.txt requirements.txt
COPY . /app
RUN pip3 install -r requirements.txt
CMD ["python3","main.py"]

requirements.txt文件是我存储程序工作所需安装的所有软件包的地方。

您将应用程序复制到错误路径

由于您使用的是
WORKDIR
,您需要(从形式上)了解:

WORKDIR指令为Dockerfile中的任何RUN、CMD、ENTRYPOINT、COPY和ADD指令设置工作目录

这意味着您的
复制/app
将应用程序复制到
/app/app
中,但当您编写
CMD[“python3”,“main.py”]
时,此命令将在
/app
中执行。我相信
main.py
文件不在那里,而是在
/app/app


要修复它,您需要更改
COPY/应用程序
复制

运行时会发生什么?你收到错误信息了吗?意外输出?其他行为?不!程序就是不运行!但是没有错谢谢你的帮助!然而,我这样做了,但它仍然不起作用,当你说“我看不到代码的结果”时,你是什么意思?我得出的结论是,这是因为我试图在容器之外更改sqlite3数据库,有什么解决方案吗?如果
COPY
的右侧是一个绝对路径,它将按原样使用。相对目录
COPY/app
将被解释为相对于
WORKDIR
@Johny,如果我理解正确,您容器中运行的代码应该在容器外部更改sqlite2 DB中的数据?