2017-08-12 52 views
1

我正在嘗試爲Ghost(https://ghost.org/)創建一個自定義Docker鏡像,並預裝了一些主題。我把官方圖片(https://hub.docker.com/_/ghost/)並安裝了歐諾禪(https://github.com/Kikobeats/uno-zen)作爲主題中的說明 - 克隆到content/themes,運行安裝腳本等將數據保存爲Docker鏡像的一部分?

然後我跑到docker commit推動這些變化對現有的另一層Docker鏡像。但是,下次我使用這個圖像旋轉容器時,我沒有看到他們應該在哪裏的主題文件。這就像沒有任何變化持續下去。

我在做什麼錯?

回答

1

的問題是,在/ var/lib中/鬼/內容被聲明爲一個卷:

ENV GHOST_CONTENT /var/lib/ghost/content 
... 
VOLUME $GHOST_CONTENT 

當一個目錄被聲明爲在Dockerfile卷,它所做的任何修改都不會事後保存當建立或提交新的圖像。

可能的解決方法是將/var/lib/ghost/content複製到另一個,例如/var/lib/ghost/content.real並重新配置。您可以將這些命令添加到您的Dockerfile(我建議您在Dockerfile中進行更改,而不是運行& commit)。

ENV GHOST_CONTENT /var/lib/ghost/content.real 
RUN cp -a /var/lib/ghost/content "$GHOST_CONTENT"; \ 
     gosu node ghost config --ip 0.0.0.0 --port 2368 --no-prompt --db sqlite3 --url http://localhost:2368 --dbpath "$GHOST_CONTENT/data/ghost.db"; \ 
     gosu node ghost config paths.contentPath "$GHOST_CONTENT" 

VOLUME "$GHOST_CONTENT" 

提示從原來的Dockerfile採取:

https://github.com/docker-library/ghost/blob/a9b023e922f4f44c4c15f765973c2939f1be9b12/1/debian/Dockerfile

+0

以及TIL。感謝這一點。任何關於我如何能夠實現我想要做的事情的建議? – user1649740

+0

我用可能的解決方法編輯了我的答案。 –

+0

因此,根據您使用Dockerfile的建議,我是否應該爲Dockerfile的主題部分進行設置過程? – user1649740