2015-11-23 56 views
2

我想擴展Jenkins官方圖像,並將我的mercurial repo登錄到/var/jenkins_home,這就是我如何在沒有docker的情況下在Jenkins上控制我的配置。但是,當我做的:如何更改泊塢窗卷中的權限?

USER root ADD src/hgrc /var/jenkins_home/.hg/hgrc RUN chown jenkins:jenkins /var/jenkins_home/.hg/hgrc

它使hgrc爲501:撥出,這似乎與這樣的事實:/var/jenkins_home在詹金斯圖像的體積。

或者,即使我只是做:

USER jenkins WORKDIR /var/jenkins_home RUN hg init

文件夾/var/jenkins_home/.hg沒有得到像它通常會創建。在第一個示例中,如果.hg不存在,則它將被創建,但它由root擁有。

那麼,在上游圖像創建的卷中找到文件的「正確」方式是什麼?

回答

3

這裏提供的細節不足以理解問題。但看着這個要點,我可能會涉及到你的問題。它主要與裝入卷的文件權限相關問題有關。

裝載的卷將根據原始基本文件夾UID和GID接收憑據。相同的uid和gid會傳播到容器中。

爲了解決這樣的問題,你可以有兩種選擇:

  1. 如果你可以改變用於安裝父文件夾的文件權限。然後,更新用於安裝的父文件夾,使其具有與碼頭容器中jenkins用戶的uid和gid相同的uid和gid。

  2. 如果您有對泊塢窗圖像生成腳本的控制權,並且無​​權更改您正在安裝的父文件夾的uid和gid,則需要遵循此方法。將密鑰用戶(在Docker容器內運行惡魔進程的用戶,在您的情況下,它可能是jenkins用戶)的uid,gid與父文件夾的uid和gid同步。

最簡單的方法是遵循第一種方法。

您可以參考我遇到的類似問題,並按以下方式解決:nfs volume mount to mysql docker container inside a ubuntu virtualbox fail