Python Docker CMD未执行,程序未运行
所以我有一个python项目,我有一个Dockerfile,但问题是出于某种神奇的原因,当我构建docker映像并运行它时,我看不到代码的结果,如果我只是在pycharm或控制台上正常运行它,有人知道为什么会发生这种情况吗?真奇怪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 [
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中的数据?