Dockerfile執(zhí)行copy命令無法成功

目標(biāo)

  • 實現(xiàn)將jenkins job :test的config.xml通過Dockerfile直接放入容器,并且保證test文件夾的owner是jenkins。

解決思路

  • Q1:為了完成將文件放入容器旱物,我在Dockerfile中使用COPY指令,Dockerfile如下:
FROM jenkins:2.60.2
USER jenkins
COPY ./test /var/jenkins_home/jobs/
COPY ./test2 /var/jenkins_home/jobs/
USER jenkins

然后執(zhí)行docker-compose up -d發(fā)現(xiàn)容器中竟然沒有這兩個文件同木,容器中為什么沒有這兩個文件歌馍?

  • A1:查看官網(wǎng)后發(fā)現(xiàn),COPY指令使用沒有問題抹腿,然后換著copy其他文件都沒有copy進去岛请。發(fā)現(xiàn),每次docker-compose up -dlog出來的信息都是容器已經(jīng)up to date才意識到警绩,我們修改的Dockerfile從來都沒有被使用過崇败,一直都是使用原來使用Dockerfile創(chuàng)建的鏡像,采用docker rmi ***之后肩祥,才發(fā)現(xiàn)重新build了新鏡像創(chuàng)建容器,終于copy進去后室。

  • Q2.發(fā)現(xiàn)卻在目標(biāo)文件的文件夾下面沒有testtest2目錄只有一堆目錄下的文件,這是為什么混狠?

  • A2:肯定是copy指令對copy目錄有特定的要求岸霹。這里的COPY指令和Linux的copy指令用法有所區(qū)別。Linux中的copy是通過參數(shù)對目錄的cp進行控制将饺,但是這里沒有使用參數(shù)贡避。因此運用自己的規(guī)則:

    如果源目標(biāo)都是文件夾痛黎,那么COPY會將源目錄下的所有子文件或者目錄COPY到目標(biāo)目錄下(If <src> is a directory, the entire contents of the directory are copied, including filesystem metadata.)

    改完后執(zhí)行docker-compose up -d --build發(fā)現(xiàn)任然是原來的樣子。


  • Q3:為什么容器內(nèi)文件都修改了Dockercp的方式仍然不改變贸桶?并且也確實rebuild容器了舅逸?
  • A3:認(rèn)真觀察docker-compose up -d --build的log,發(fā)現(xiàn)容器竟然是recreating而不是Creating皇筛。因此由于容器沒有被rm導(dǎo)致每次啟動都是用的原來的容器琉历。因此需要docker rm container先將容器rm掉。之后成功水醋,但是權(quán)限仍然是root旗笔。

  • Q4:為什么我們將用戶修改成了jenkins,jenkins用戶COPY之后的文件仍然是root拄踪?
  • A4:查詢官網(wǎng)發(fā)現(xiàn)這句話All new files and directories are created with a UID and GID of 0說明使用這條指令會將文件owner變成root蝇恶。也就是跟你之前是否轉(zhuǎn)化了用戶沒有任何關(guān)系。

  • Q5:那么我們能不能使用root用戶在Dockerfile中使用RUN chown修改一下COPY進來的用戶權(quán)限呢惶桐?
  • A5:嘗試使用下面的Dockerfile
FROM jenkins:2.60.2
COPY ./jobs /var/jenkins_home/jobs
USER root
RUN chown -R jenkins /var/jenkins_home/jobs
     發(fā)現(xiàn)chown完全沒有作用

  • Q6:為什么明明是root用戶撮弧,卻沒有辦法chown修改owner?
  • A6:首先我懷疑是root這個用戶還是沒有chown權(quán)限姚糊,但是查過Linux文檔發(fā)現(xiàn)贿衍,只有root有chown的權(quán)限。我就進入容器執(zhí)行RUN的指令發(fā)現(xiàn)成功了救恨。

  • Q7:那么為什么在容器中執(zhí)行chown就能成功在Dockerfile就不行贸辈?
  • A7:首先我懷疑執(zhí)行RUN的用戶并不是root,因為在官網(wǎng)說The RUN instruction will execute any commands in a new layer on top of the current image肠槽,所以我在RUN這里先執(zhí)行了 whoami發(fā)現(xiàn)用戶確實是root,既然這個test目錄的owner是root擎淤,那么我在Dockerfile中
FROM jenkins:2.60.2
COPY ./jobs /var/jenkins_home/jobs
USER root
RUN rm -rf /var/jenkins_home/jobs/test

發(fā)現(xiàn)無法rm,說明出現(xiàn)這個問題和chown沒有任何關(guān)系秸仙,只能說明在Dockerfile中COPY的文件owner是root嘴拢,并且在Dockerfile中USER root,此時RUN中執(zhí)行的任何root能對這個文件的操作都不能執(zhí)行寂纪,但是在容器內(nèi)部可以席吴。也就是說COPY進來的文件OWNER是容器中的root而不是Dockerfile中的root,實在是解決不了弊攘,求解抢腐?姑曙?襟交??伤靠?捣域?

---> 因為問題沒有解決 我明天會繼續(xù)研究 今天先寫到這里

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末啼染,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子焕梅,更是在濱河造成了極大的恐慌迹鹅,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贞言,死亡現(xiàn)場離奇詭異斜棚,居然都是意外死亡,警方通過查閱死者的電腦和手機该窗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門弟蚀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人酗失,你說我怎么就攤上這事义钉。” “怎么了规肴?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵捶闸,是天一觀的道長。 經(jīng)常有香客問我拖刃,道長删壮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任序调,我火速辦了婚禮醉锅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘发绢。我一直安慰自己硬耍,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布边酒。 她就那樣靜靜地躺著经柴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪墩朦。 梳的紋絲不亂的頭發(fā)上坯认,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機與錄音氓涣,去河邊找鬼牛哺。 笑死,一個胖子當(dāng)著我的面吹牛劳吠,可吹牛的內(nèi)容都是我干的引润。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼痒玩,長吁一口氣:“原來是場噩夢啊……” “哼淳附!你這毒婦竟也來了议慰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤奴曙,失蹤者是張志新(化名)和其女友劉穎别凹,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洽糟,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡炉菲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了坤溃。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颁督。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖浇雹,靈堂內(nèi)的尸體忽然破棺而出沉御,到底是詐尸還是另有隱情,我是刑警寧澤昭灵,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布吠裆,位于F島的核電站,受9級特大地震影響烂完,放射性物質(zhì)發(fā)生泄漏试疙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一抠蚣、第九天 我趴在偏房一處隱蔽的房頂上張望祝旷。 院中可真熱鬧,春花似錦嘶窄、人聲如沸怀跛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吻谋。三九已至,卻和暖如春现横,著一層夾襖步出監(jiān)牢的瞬間漓拾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工戒祠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留骇两,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓姜盈,卻偏偏與公主長得像低千,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子贩据,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一栋操、Docker 簡介 Docke...
    極客圈閱讀 10,499評論 0 120
  • docker基本概念 1. Image Definition 鏡像 Image 就是一堆只讀層 read-only...
    慢清塵閱讀 8,748評論 1 21
  • Docker — 云時代的程序分發(fā)方式 要說最近一年云計算業(yè)界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,532評論 15 147
  • 目錄 前言 Dockerfile的書寫規(guī)則及指令使用方法 創(chuàng)建Dockerfile饱亮,構(gòu)建運行環(huán)境 構(gòu)建鏡像 Doc...
    garyond閱讀 72,350評論 0 43
  • ? 昨天晚上矾芙,走在回去的路上,經(jīng)過天橋時近上,發(fā)現(xiàn)橋下擠滿了人群剔宪,心里好奇到底發(fā)生了什么事,于是側(cè)身擠進人群中壹无。當(dāng)我好...
    一只晚晴閱讀 186評論 0 0