2017-06-16 67 views
3

ADD不工作,我們有一個dockerfile作爲COPY和Dockerfile

FROM bitnami/tomcat 

EXPOSE 8080 
EXPOSE 8009 

ADD values.war /opt/bitnami/tomcat/data/ 

除values.war文件似乎從來沒有被添加,當我們

docker exec -it values /bin/bash 

並檢查/opt/bitnami/tomcat/data/目錄戰爭文件不被複制。

但是,我們嘗試了以下,當我們連接到泊塢窗容器中的文件被複制

FROM bitnami/tomcat 

EXPOSE 8080 
EXPOSE 8009 

RUN mkdir -p /var/app 
ADD values.war /var/app 

所以導致我們認爲,這個問題是與目錄,因此,我們嘗試了以下

FROM bitnami/tomcat 

EXPOSE 8080 
EXPOSE 8009 

RUN ls -l /opt/bitnami/tomcat/data/ 

建設時給輸出

ls: cannot access /opt/bitnami/tomcat/data/: No such file or directory 

圖片

我們認爲這個問題是因爲FROM圖片bitnami/tomcat使用該目錄作爲卷等。這可能是原始bitnami/tomcat映像的代碼,儘管我們不確定。

https://github.com/bitnami/bitnami-docker-tomcat/blob/master/9.0/Dockerfile

如何將文件添加到tomcat目錄

回答

2

這是定義Dockerfile內卷的缺點,爲什麼I don't recommend defining them there的原因之一任何想法。在構建期間嘗試修改卷中的文件時,docker的行爲未定義,它可能取決於您的docker版本或其他外部變量,因此爲便於攜帶,最好不要這樣做。

由於您正在處理來自另一方的圖片,因此我會向他們提出一個問題以刪除該行(請隨時將其指向我的博客文章以進行解釋)。直到發生這種情況,您可以結帳their build files from github並更改Dockerfile以構建您自己的基本映像版本。

僅供參考,這裏是關於defining a volume in the Dockerfile from docker's docs音符之一(說的3倍快):

改變從Dockerfile內體積:如果任何構建步驟 體積後的更改數據它已被宣佈,那些 的變化將被丟棄。

+0

好吧,它是沿着我們認爲雖然我們不知道具體細節的線,另外你知道如果有任何工作可能性沒有分叉和改變構建文件(雖然它似乎不太可能)? – MilindaD

+0

除了直接將目錄作爲卷管理而不是嘗試更改構建腳本中的文件外,沒有解決方法。 – BMitch

4

Sameer from Bitnami here。

問題的確在於在Dockerfile中定義的VOLUME。我們認識到這是Dockerfile中的一個缺陷,我們正在努力解決所有Docker文件中的這個問題。

2

只是想通知您,Bitnami Docker鏡像不再在Dockerfile中聲明VOLUME,這使我們的用戶可以更輕鬆地擴展和自定義泊塢窗鏡像。希望你發現這個改變很有幫助。

如果您還有其他問題,請加入我們的社區網站:http://slack.oss.bitnami.com/