首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行Docker容器时没有此类文件或目录错误

运行Docker容器时没有此类文件或目录错误
EN

Stack Overflow用户
提问于 2021-07-06 08:53:18
回答 1查看 1.9K关注 0票数 0

我为一个带有Oracle数据库的Flask应用程序提供了REST应用程序,我使用Oracle即时客户端。

我设法从我的电脑运行应用程序,它工作良好,我的任务是为这个应用程序制作一个Docker文件。我在码头方面的经验不多。

这是我写的Dockerfile

代码语言:javascript
复制
FROM python:3.7.5-slim-buster

# Installing Oracle instant client
WORKDIR    /opt/oracle
RUN        apt-get update && apt-get install -y libaio1 wget unzip \
        && wget 
https://download.oracle.com/otn_software/linux/instantclient/instantclient-basiclite- 
linuxx64.zip \
        && unzip instantclient-basiclite-linuxx64.zip \
        && rm -f instantclient-basiclite-linuxx64.zip \
        && cd /opt/oracle/instantclient* \
        && rm -f *jdbc* *occi* *mysql* *README *jar uidrvci genezi adrci \
        && echo /opt/oracle/instantclient* > /etc/ld.so.conf.d/oracle- 
instantclient.conf \
        && ldconfig

WORKDIR    /app
COPY       . . 

EXPOSE     5000

CMD ["python", "/app/__init__.py"]

我使用以下命令:

  1. 停靠库构建--< Dockerfile和Docker映像生成没有错误,
  2. 停靠器运行-d -p 5000:5000 (停靠图像id)
  3. 停靠启动-ai (停靠容器id),我得到以下错误:

我的计算机上应用程序的文件夹结构是: C:\Proiecte_ python \Flask_Docker_ app -Start\app,在app中是即时oracle客户端、python文件和Dockerfile。

有人能帮我吗?因为我觉得在Dockerfile CMD路径上出了点问题,或者类似的事情。我尝试过许多变体,但都没有用。

EN

回答 1

Stack Overflow用户

发布于 2021-07-06 09:35:02

Dockerfile的最后一行

代码语言:javascript
复制
CMD ["python", "/app/__init__.py"]

等于执行

代码语言:javascript
复制
python /app/__init__.py

您所得到的错误是文件__init__.py不存在。

线

代码语言:javascript
复制
WORKDIR    /app
COPY       . . 

告诉容器到/app目录中,然后将主机计算机(例如物理机器)中的所有文件复制到容器/app目录中。(副本。.的意思是从主机的当前目录(例如您正在运行停靠命令的位置)复制到容器的当前目录-- /app)。

看来,作为接收Dockerfile的一部分,您还应该下载__init.py__文件,然后Dockerfile会为您将其复制到容器中。

或者,您可能忽略了说明中的步骤,在这些步骤中,您应该编写自己的__init.py__文件进行测试。

无论哪种方法,您的解决方案都是找到__init.py__文件,并将其放入当前的工作目录( C:\Proiecte_python\Flask_Docker_App-Start\app ),确保您运行的停靠构建停靠从同一个目录运行命令。

代码语言:javascript
复制
cd C:\Proiecte_python\Flask_Docker_App-Start\app
docker build <....>
docker run <....>
docker start <....>

或者,您的另一个解决方案是返回说明,确保您已经创建了python文件并将其放置在正确的位置。

作为一个非常基本的酒瓶/Docker教程,请参阅下面的链接

https://runnable.com/docker/python/dockerize-your-flask-application

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68267419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档