码头工人。没有这样的文件或目录

2024-01-01

我有一些文件,我想将它们移动到 Docker 容器中。 但最后 docker 找不到文件..

本地计算机上包含文件的文件夹位于/home/katalonne/flask4

文件结构如果重要的话:

File Structure if it matters The Dockerfile:

#
# First Flask App Dockerfile
#
#

# Pull base image.
FROM centos:7.0.1406

# Build commands
RUN yum install -y python-setuptools mysql-connector mysql-devel gcc python-devel
RUN easy_install pip
RUN mkdir /opt/flask4
WORKDIR /opt/flask4
ADD requirements.txt /opt/flask4
RUN pip install -r requirements.txt
ADD . /opt/flask4

# Define deafult command.
CMD ["python","hello.py"]

# Expose ports.
EXPOSE 5000

所以我用这个命令构建了图像:

docker build -t flask4 .

我通过以下方式运行容器的体积:

docker run -d -p 5000:5000 -v /home/Katalonne/flask4:/opt/flask4 --name web flask4

当我想在容器上运行该文件时:

docker logs -f web

我收到此错误,它找不到我的 hello.py 文件:

python: can't open file 'hello.py': [Errno 2] No such file or directory

我有什么错?

附: :我是 Docker 和 Linux 的菜鸟。


与 Dockerfile 位于同一位置的文件和目录确实(暂时)可用于您的 docker 构建。但是,在 docker 构建之后,除非你使用过ADD or COPY要将这些文件永久移动到 docker 容器,构建完成后,它们将不可用于 docker 容器。该文件上下文用于构建,但您希望将它们移动到容器中。

您可以添加以下命令:

...
ADD . /opt/flask4
ADD . . 

# Define deafult command.
CMD ["python","hello.py"]

线路ADD . .应该将临时构建上下文中的所有内容复制到容器中。这些文件将到达的位置就是您的位置WORKDIR指向(/opt/flask4)。

如果您只想将 hello.py 添加到容器中,请使用

ADD hello.py hello.py

所以,当你跑步时CMD ["python","hello.py"], the pwd你将身处的是/opt/flask4,并且 hello.py 应该在那里,并运行命令python hello.py在该目录中应该可以工作。

HTH.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

码头工人。没有这样的文件或目录 的相关文章

随机推荐

  • Valgrind 显示???对于行号,尽管 -g 标志

    main cpp include
  • 使用 InAppBrowser 处理从远程网页直接发送到应用程序的事件

    我想从我的 cordova 应用程序打开一个外部 Web 应用程序 并直接在本机应用程序上处理 Web 应用程序事件 例如 当加载特定 URL 时 应用程序应通过调用函数来处理它 有谁知道这是否可能 是的 确实可以使用 InAppBrows
  • distplot/kdeplot如何计算kde曲线?

    我正在使用seaborn 来绘制数据 一切都很好 直到我的导师问我下面的代码中的情节是如何制作的 import numpy as np import seaborn as sns import matplotlib pyplot as pl
  • Mediastyle 通知在 Android 11 中不起作用

    我的自定义媒体样式通知在 Android 11 中不再适用于我的音乐应用 在 Android 10 及之前的版本中运行良好 我是否需要添加任何其他代码才能使其在 Android 11 中运行 我应该补充一点 摆脱 setMediaSessi
  • Windows 上的 java 堆栈转储

    我在标准 Windows 命令窗口中有一个正在运行的 java 进程 即我已经运行 cmd 并输入 java jar 如果可能的话 我需要能够获得所有线程的完整堆栈转储 我记得在 Linux 下你可以通过 quit 命令上的选项向 JVM
  • 隐藏警告的杂注:where 条件中使用的字段可能包含空值

    我正在寻找一个编译指示 可以用来隐藏当选择的 WHERE 条件中使用的字段可能包含数据库中的 NULL 值时生成的编译器警告 阅读 SAP note 1088403 后 我知道这里可能存在问题 但我无法应用那里建议的解决方案 因为我在 WH
  • Instagram 有分享按钮吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我已经用谷歌搜索了几个小时 但没有在网络上找到任何与 Instagram 共享按钮相关的文章和文档 有还是没有 您无法使用 API 在 I
  • laravel file_get_contents 路线没有得到响应

    我有一条路线 Route group array prefix gt playlist function Route get raw id array as gt rawPlaylist uses gt PlaylistsControlle
  • React Native - ReactNavigation.addNavigationHelpers 不是函数

    我使用的是react navigation 1 2 1 当我将react navigation更新到2 0 0时 一切都工作正常 但出现以下错误 知道为什么会这样吗 React Navigation add 导航助手不是一个函数 impor
  • 其他开发团队如何处理版本号?

    我们的应用程序已经相当成熟 因此我们的版本已经达到了 16 但是 这可能会给人留下该软件已经过时且脱节的印象 有多少商业应用程序的版本为 20 显然 版本号是相当任意的 其他人使用什么 我非常喜欢 Ubuntu 的 Month date 方
  • Scala Slick 表继承

    我以这种方式实现 SQL 表继承 Table Shape Column Type shape id integer square foat name character varying 64 Table Triangle Column Ty
  • 有没有一种方法可以在不发送测试邮件的情况下测试电子邮件地址是否存在? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在不发送电子邮件的情况下检查电子邮件地址是否存在 https stackoverflow com questions 565504 how to check if an email address
  • Windows Azure 多重部署

    这是场景 太多的网站具有相同的源代码和自己的数据库 每个客户都有自己的系统和自己的数据库 但所有客户都使用相同的源代码 我只有一个 TFS 项目 因为所有客户都使用相同的代码 不是物理上的 因为我必须在每个网站上部署到每个客户 问题 我如何
  • 运输例外

    我正在尝试导入 happybase 但在连接时收到以下错误消息 我已经运行了 Hadoop 伪节点集群和 Hbase 安装的组件版本如下 Hadoop 版本 1 0 4 Hbase 版本 0 94 4 快乐基地 0 4 有人可以查看下面的例
  • R 编程:自动合并字符串

    我正在尝试自动化这里工作的一些系统 专门用于根据调查数据生成报告 假设我对 1 个问题有 3 条评论 current comments lt c too slow not fast enough bad speed 基本上我想要做的是将注释
  • 如何从 servlet 调用 EJB 3.1 非零参数构造函数?

    我有一个 login java servlet 正如其名称所示 它为我的 Web 应用程序提供登录功能 我是一名新手 正在使用 EJB 3 1 和 EE 6 在我的 LoginBean java EBJ 中 我有一个无参数构造函数和另一个具
  • 在android中动态创建活动

    android 如何从 android 清单文件注册一个活动 以便它出现在包管理器中 我确实明白这是在安装应用程序时完成的 有没有办法调整 android 源代码来创建 API 来动态创建和注册活动 android如何从android清单文
  • 以计数作为标签的 2D 摘要图

    我有一个数量的测量值 value 在特定点 lon and lat 如下面的示例数据 library ggplot2 set seed 1 dat lt data frame lon runif 1000 1 15 lat runif 10
  • 有没有办法在 Swift 中重写数组到字符串的转换?

    我正在尝试使用 Swift 让它看起来更 动态类型 只是为了好玩 没有预期的生产价值 现在我陷入了将内置类型转换为的覆盖行为String 例如 我想看到这个输出Array let nums 1 2 3 print nums I m an a
  • 码头工人。没有这样的文件或目录

    我有一些文件 我想将它们移动到 Docker 容器中 但最后 docker 找不到文件 本地计算机上包含文件的文件夹位于 home katalonne flask4 文件结构如果重要的话 The Dockerfile First Flask