2017-04-21 58 views
0

我正在使用jenkins圖像來創建泊塢窗容器。現在我只是想創建一個新目錄並複製一些文件。圖像生成過程運行良好,但是當我啓動容器時,我看不到文件和目錄。Dockerfile:mkdir和COPY命令運行良好,但我看不到目錄和文件

這裏是我的dockerfile

FROM jenkins:2.46.1 
MAINTAINER MandeepSinghGulati 

USER jenkins 

RUN mkdir /var/jenkins_home/aws 

COPY aws/config /var/jenkins_home/aws/ 
COPY aws/credentials /var/jenkins_home/aws/ 

我發現了一個類似的問題,但here因爲我沒有創建jenkins用戶似乎不同。它已經與主目錄/var/jenkins_home/一起存在。不知道我做錯了

這裏是我如何建立自己的形象和啓動容器:

➜ jenkins_test docker build -t "test" . 
Sending build context to Docker daemon 5.632 kB 
Step 1/6 : FROM jenkins:2.46.1 
---> 04c1dd56a3d8 
Step 2/6 : MAINTAINER MandeepSinghGulati 
---> Using cache 
---> 7f76c0f7fc2d 
Step 3/6 : USER jenkins 
---> Running in 5dcbf4ef9f82 
---> 6a64edc2d2cb 
Removing intermediate container 5dcbf4ef9f82 
Step 4/6 : RUN mkdir /var/jenkins_home/aws 
---> Running in 1eb86a351beb 
---> b42587697aec 
Removing intermediate container 1eb86a351beb 
Step 5/6 : COPY aws/config /var/jenkins_home/aws/ 
---> a9d9a28fd777 
Removing intermediate container ca4a708edc6e 
Step 6/6 : COPY aws/credentials /var/jenkins_home/aws/ 
---> 9f9ee5a603a1 
Removing intermediate container 592ad0031f49 
Successfully built 9f9ee5a603a1 
➜ jenkins_test docker run -it -v $HOME/jenkins:/var/jenkins_home -p 8080:8080 --name=test-container test 

如果我運行無卷命令mount,我可以看到複製的文件和目錄。然而,與卷裝,我看不到相同的。即使我清空主機上的目錄。這是預期的行爲?如何將文件複製到作爲卷使用的目錄?

+2

你如何啓動和檢查你的容器 ?! – Gabbax0r

+1

請提供用於容器目錄'/ var/jenkins_home/aws /' –

+0

的'ls'命令的'docker build'輸出和輸出,這個問題似乎與'docker run'過程中的volume mount命令有關。這是我正在做的'docker run -it -v $ HOME/jenkins:/ var/jenkins_home -p 8080:8080 --name = test-container test'並且我正在安裝的卷已經包含了一些文件。如何使用現有卷並仍然確保複製命令添加新文件? –

回答

1
  1. 現有卷可安裝

    docker container run -v MY-VOLUME:/var/jenkins_home ...

  2. 此外,documentation of COPY狀態:

    所有的新文件和目錄與一個UID和0 GID創建。

    因此COPY未反映您的USER指令。這似乎是你問題的第二部分。

相關問題