为什么 chown 在 Dockerfile 中不起作用? [关闭]

2023-12-31

我的 Dockerfile 创建一个目录,对其进行 chown,然后列出该目录。该目录仍归 root 所有。这是为什么?

这是 Dockerfile:

FROM ubuntu:precise
RUN useradd -d /home/testuser -m -s /bin/bash testuser
RUN mkdir -p /var/local/testrunner/logs
VOLUME ["/var/local/testrunner/logs"]
RUN grep testuser /etc/passwd
RUN grep root /etc/passwd
RUN chown -R testuser:testuser /var/local/testrunner/logs
RUN ls -ld /var/local/testrunner/logs 

这是“docker build”的输出:

Sending build context to Docker daemon 10.24 kB
Sending build context to Docker daemon 
Step 0 : FROM ubuntu:precise
 ---> ab8e2728644c
Step 1 : RUN useradd -d /home/testuser -m -s /bin/bash testuser
 ---> Using cache
 ---> 640f12671c86
Step 2 : RUN mkdir -p /var/local/testrunner/logs
 ---> Using cache
 ---> bf7756fd5b1f
Step 3 : VOLUME ["/var/local/testrunner/logs"]
 ---> Using cache
 ---> 65c73ee76c20
Step 4 : RUN grep testuser /etc/passwd
 ---> Using cache
 ---> db72fff0b965
Step 5 : RUN grep root /etc/passwd
 ---> Running in ebff78df7a9a
root:x:0:0:root:/root:/bin/bash
 ---> ead0ff704a59
Removing intermediate container ebff78df7a9a
Step 6 : RUN chown -R testuser:testuser /var/local/testrunner/logs
 ---> Running in c925f67b2ab4
 ---> 253132be935e
Removing intermediate container c925f67b2ab4
Step 7 : RUN ls -ld /var/local/testrunner/logs
 ---> Running in 978bc66aa47e
drwxr-xr-x 2 root staff 4096 Oct  1 15:15 /var/local/testrunner/logs

Docker 版本 1.2.0,构建 fa7b24f

主机运行 Ubuntu 12.04,但具有 3.13.0-36-generic 内核。


回答我自己的问题:它被声明为一卷。如果取出VOLUME指令,chown就生效。

更重要的是,如果你声明体积after运行 chown,chown 设置仍然有效。

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

为什么 chown 在 Dockerfile 中不起作用? [关闭] 的相关文章

随机推荐

  • athena 跳过以下划线开头的键

    我正在尝试与 aws athena 合作 对我们存储在 s3 中的 json 文件进行一些查询 因此 我设法创建了一个简单的模式 一切似乎都很好 直到我注意到我的一些文件没有被考虑在内 文件的键是用户 ID 其中一些以 开头 所有这些都在雅
  • Java - CompletableFutures - 如果出现异常,我如何取消所有期货

    我有一个方法 包括在下面 来返回列表的值CompletableFutures 该方法应该 能够在给定时间后超时 如果有超过n个例外 能够取消所有期货 第一点效果很好 但在超过超时限制后确实失败了 我还需要打电话exectuorService
  • 在这种情况下抛出什么类型的异常?

    我正在编写一个 C 应用程序 它使用自动化来控制另一个程序 当然 该程序必须运行才能使我的程序正常工作 当我的程序查找应用程序但找不到它时 我想抛出异常 当然 现在我可以尝试打开应用程序 或者告诉用户打开它 或者 我应该实现自定义异常 还是
  • 让 is_purchasable 挂钩也适用于 Woocommerce 产品变体

    我创建了 2 个自定义产品字段 可用性 从何时 到何时 因此 如果当前日期在这些设定的可用日期之间 则产品是可购买的 否则 则不可购买 一切都很完美 但只有在我发布具有变化的产品之前 然后 就像产品变体忽略这些自定义可用性字段 值一样 即使
  • 使用实体框架实体作为业务对象?

    我使用 Microsoft 的实体框架 O R 映射器 并使用实体类 映射到数据库对象的生成类 作为业务对象 这个可以吗 请说出你的缺点或优点 在业务层和表示之间进行 WCF 通信的情况下该怎么办 如何将这些对象作为数据成员发送 首先 在撰
  • 如何重置 API 权限 Microsoft Graph

    我正在使用 Microsoft Graph 开发一些东西 起初 只给予一些许可 但我发现这还不够 我添加了更多权限 但似乎不起作用 因为我登录后 授权网出不来 我正在按照步骤操作使用 Microsoft Graph 我正在使用 ADv1 我
  • 如何使用现有的登录 Chrome 用户配置文件正确设置 VS Code 以在 Chrome 中进行调试?

    我有一个用 VS Code 编写的 React 应用程序 为了测试和调试我的工作 我进入终端并输入npm start 这将启动应用程序服务器 并在当前登录用户下正确启动 chrome 该用户已安装 React Devtools 扩展 不过
  • 如何在 CodeIgniter 中上传多个图像并进行验证

    我正在尝试上传多张经过验证的图像 但无法执行此操作 我的查看代码如下 ul li Category Image li ul
  • 除非我强制转换返回变量,否则对静态扩展方法进行存根似乎可以在 Rhino Mocks 中工作。为什么?

    我可以使用 Rhino Mocks 存根静态扩展方法 但如果我将返回值转换为另一种类型 则会收到错误 为什么 using Rhino Mocks public interface INumberGenerator double GetDou
  • Xcode 9 模拟器上的 Google 地图在移动地图时使用超过 100% 的 CPU

    因此 我现在已将我的项目转换为在 Xcode 9 中使用 Swift 4 并开始测试我的应用程序 这是一个大型应用程序 有四个不同的选项卡 几乎所有内容都按预期运行 其中一个选项卡是地图 使用 GoogleMaps 我从来没有遇到过任何问题
  • Gradle Ear 使用当前 WAR 文件名更新 application.xml

    我有一个 java EAR 项目 其中包含一些 WAR Web 应用程序 我正在使用 gradle 构建 EAR 文件 uberApp gt WarA
  • #<#:0x007fe3546d58f0> 的未定义方法 `posts_path'

    我是 Rails 新手 收到此错误 undefined method posts path for lt
  • Outlook - 根据收件人插入文本

    我需要根据收件人自动将文本插入到外发电子邮件中 我在另一个问题 归功于 76Mel 的答案中发现了一些看起来很有希望的代码 看来我可以将代码附加到 ThisOutlookSession 中的 ItemSend Private Sub App
  • Discord.py 无法获取证书

    我是否必须在系统内安装 生成 下载新证书 或者我是否可以以某种方式禁用 python 内的证书 ubuntu 18 python 3 7 discord py latest INFO 2019 03 05 22 58 02 Initiali
  • 如何在角度js中显示依赖选择框选项[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有一个表单 我想要两个选择框 以便其中一个选择框的某些选项将根据另一个选择框的当前值显示 隐藏 e g Select
  • 在基本图形的绘图区域之外绘制图例?

    正如标题所说 使用基础图形时如何在绘图区域之外绘制图例 我想过摆弄layout并生成一个仅包含图例的空图 但我对仅使用基本图形设施的方式感兴趣 例如 par mar 在图例的右侧留出一些空间来放置图例 这里有一个例子 plot 1 3 rn
  • 我应该停止使用抽象基类/接口,而是使用 boost::function/std::function 吗?

    我刚刚了解了 std function 的真正含义以及它的用途 我有一个问题 现在我们基本上有了委托 我们应该在何时何地使用抽象基类 以及何时应该实现通过 std function 对象提供给泛型类的多态性 ABC在C 11中是否受到致命打
  • 双重调度和替代方案

    我正在努力寻找更好的方法来处理一些成长if构造来处理不同类型的类 这些类最终是不同值类型 int DateTime 等 的包装器 并带有一些附加状态信息 因此 这些类之间的主要区别在于它们包含的数据类型 虽然它们实现了泛型接口 但它们也需要
  • 如何在浏览器中跨页面保留 Cognito 身份

    我使用开发人员经过身份验证的身份通过客户端浏览器上的 Cognito 进行身份验证 当我的页面加载 或刷新 时 我希望我的应用程序能够记住身份 只要对象没有过期 我认为它会持续大约一个小时 但是 我不知道如何从 Cognito 检索身份 而
  • 为什么 chown 在 Dockerfile 中不起作用? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的 Dockerfile 创建一个目录 对其进行 chown 然后列出该目录 该目录仍归 root 所有 这是为什么 这是 Docker