在预构建的 docker 容器中更改用户的 uid (jenkins)

2024-04-05

我是 docker 的新手,所以如果这是我遗漏的一个相当明显的过程,我确实为前面的愚蠢问题道歉。

我正在使用以下命令设置持续集成服务器jenkins泊坞窗图像。我做了一个docker pull jenkins,并创建了一个用户jenkins让我能够安装/var/jenkins_home在我的主机的容器中/var/jenkins_home(也归jenkins:jenkins user).

问题是容器似乎定义了jenkins用户的 uid 为 102,但我的主机有jenkins用户为 1002,所以当我运行它时,我得到:

docker run --name jenkins -u jenkins -p 8080 -v /var/jenkins_home:/var/jenkins_home jenkins
/usr/local/bin/jenkins.sh: line 25: /var/jenkins_home/copy_reference_file.log: Permission denied

我只是简单地为主机制作 uidjenkins用户为 102/etc/passwd,但该 uid 已被 sshd 占用。我认为解决方案是将容器更改为使用 uid 1002,但我不确定如何操作。

Edit

实际上,主机上的用户102是messagebus,而不是sshd。


请看一下我刚刚上传的docker文件:https://github.com/bdruemen/jenkins-docker-uid-from-volume/blob/master/Dockerfile https://github.com/bdruemen/jenkins-docker-uid-from-volume/blob/master/Dockerfile。 这里 UID 是从已安装的卷(主机目录)中提取的,其中

stat -c '%u' <VOLUME-PATH>

然后将容器用户的UID更改为相同的值

usermod -u <UID>

这必须以 root 身份完成,但随后 root 权限会被删除

gosu <USERNAME> <COMMAND>

一切都在 ENTRYPOINT 中完成,因此真正的 UID 在运行之前是未知的

docker run -d -v <HOST-DIRECTORY>:<VOLUME-PATH> ...

请注意,更改 UID 后,容器中的进程可能无法再访问其他一些文件,因此您可能需要

chown -R <USERNAME> <SOME-PATH>

在 gosu 命令之前。

您还可以更改GID,请参阅我的回答这里Jenkins 位于 docker 中,可以访问主机 docker https://stackoverflow.com/questions/30072491/jenkins-in-docker-with-access-to-host-docker/32953034#32953034也许您想更改两者以提高安全性。

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

在预构建的 docker 容器中更改用户的 uid (jenkins) 的相关文章

随机推荐

  • 使用 ajax 发布时的 net::ERR_EMPTY_RESPONSE

    你好 我正在尝试逐个上传 xlsx 文件 以便我可以显示状态栏 问题是 我使用 for 循环和 while 循环通过 ajax 发送请求来做到这一点 但是当位于第 40 个元素时 它会停止并且控制台显示 POST site php net
  • Android:当片段更改时如何重新创建操作栏

    我有一个活动显示一些片段 Activity 视图仅包含使用自定义 FragmentPagerAdapter 初始化的 ViewPager 该适配器提供 3 个片段之间的导航 除了操作栏之外 一切似乎都工作正常 我在片段中重写 onCreat
  • Chrome 扩展:每个选项卡的存储空间

    我想将扩展的状态存储在单个文件中而不是存储在单个文件中chrome storage但每个选项卡 扩展是关于在任何页面上制作网格系统覆盖 并希望存储每个选项卡的最新更新 这里是一些代码 popup js function let gridTo
  • Android 中触摸时可以模糊部分图像吗?

    我想模糊图像视图上的特定区域 例如 我想允许用户在android中绘制类似于裁剪的矩形 一旦用户在图像上绘制该矩形 矩形内的区域将变得模糊 或手指触摸 我搜索了很多 但大多数示例都解释了如何模糊完整图像 找不到任何解释如何仅模糊某些部分的教
  • php preg_grep 和元音变音/重音

    我有一个由术语组成的数组 其中一些包含重音字符 我像这样做了 preg grep data array Napol on Caf result preg grep input i data 因此 如果用户输入 le 我还希望结果 Napol
  • Visual Studio打开文件问题

    是否可以在 Visual Studio 2008 中打开项目 而不打开上次打开项目时先前打开的所有文件 我习惯在处理许多文件时保持打开状态 因此下次我打开项目时 它 非常缓慢 将一堆文件加载到编辑器中 我什至可能不需要打开它们 我已经搜索了
  • 如何减少 UNIX telnet 连接超时

    我有一个 unix shell 脚本 用于测试文件中列出的多个主机的 ftp 端口 for i in cat ftp hosts txt do echo QUIT telnet i 21 done 一般来说 这个脚本可以工作 但是如果我遇到
  • C++ 从 0:n-1 (n > k) 范围内随机采样 k 个数字,无需放回

    我正在致力于将 MATLAB 模拟移植到 C 中 为此 我尝试复制 MATLABrandsample 函数 http www mathworks com help stats randsample html 我还没有找到有效的方法来做到这一
  • 当键具有无效名称时的 TypedDict

    如果我的字典中有一个带有无效标识符的键 例如A 2 我怎样才能创建一个TypedDict与这个领域 E g from typing import TypedDict class RandomAlphabet TypedDict A 2 st
  • PHP 文件是否有可能在执行时删除自身?

    我有一个 PHP 文件 安装 php 它处理其他脚本的安装 我希望该文件在运行后删除自身及其包含的文件夹 这可能吗 假设该文件夹仅包含 install php 的演示 mkdir demo cd demo echo
  • GetSystemMetrics 和 TScreen 返回错误值

    我使用的是德尔福XE5 我认为我的笔记本电脑有问题 一段时间后 它向 Screen Width 和 GetSystemMetrics SM CXSCREEN 返回错误的值 高度相同 我的操作系统是 Windows 7 64 位 我的笔记本电
  • 以编程方式将证书安装到 Mozilla 中

    有没有办法以编程方式将证书安装到 mozilla 中 我们正在尝试编写所有内容的脚本来消除环境偏差 因此通过 mozilla 首选项手动安装它无法满足我们的需求 我认为有一种方法可以使用 certutil 来做到这一点 但我不确定 Mozi
  • 如何存储类内函数之间使用的 cookie jar?

    我想听听您关于如何有效存储 cookie 的建议 这些 cookie 将在类中由其他函数使用 我当前的代码如下所示 class SomeClass def init self username password self logged in
  • 不同长度的数组到一个 CSV

    如果您有多个不同长度的数组 如何将它们导出到 powershell 中的单个 csv 中 Array1 1 2 3 Array2 Bob smithy Alex Jeremy Array3 yes no 输出 CSV Number Name
  • Visual Studio 2008 中的“if 语句”之类的垂直线?

    是否有插件或设置可以添加垂直线来链接 Visual Studio 2008 中的 if 语句 之类的内容 Thanks 来自 DevExpress 的 CodeRush http www devexpress com Products Vi
  • AppStore 提交被拒绝 - 应用程序不允许使用 UDID

    我正在尝试将应用程序上传到 AppStore 但上传后我收到此错误 您的应用程序包含非公共 API 使用 请检查错误并更正它们 然后重新提交您的应用 应用程序不允许使用UDID 也不能使用UIDevice的唯一标识方式 请更新您的应用程序的
  • Python 数据结构开销/性能

    在 Python 中使用列表比使用字典和元组有任何性能优势吗 如果我正在优化速度 是否有任何理由选择其中一种而不是另一种 Rich 列表和字典是适合不同需求的野兽 确保您不使用列表进行线性搜索 其中字典哈希是完美的 因为它的速度要慢得多 另
  • 使用 .resx 文件和卫星程序集是否有性能差异?

    在构建本地化的 aspx Web 应用程序 卫星程序集的 resx 文件 时 哪种方法是最好的前进方式 网络上是否有任何可用的性能比较 嗯 不知道这样的比较是否有效 ResX 是一种以 XML 形式存储资源的存储格式 在嵌入 如果指定 到程
  • 使用 numpy 保存列表时内存不足

    我有一个相当大的列表 代表搜狗文本分类数据集中的标记 我可以处理 450 000 的整个训练集 并剩下 12 GB 的内存 但是当我在列表列表上调用 numpy save 时 内存使用量似乎增加了一倍 并且内存不足 为什么是这样 numpy
  • 在预构建的 docker 容器中更改用户的 uid (jenkins)

    我是 docker 的新手 所以如果这是我遗漏的一个相当明显的过程 我确实为前面的愚蠢问题道歉 我正在使用以下命令设置持续集成服务器jenkins泊坞窗图像 我做了一个docker pull jenkins 并创建了一个用户jenkins让