如題,在啟動 Docker Container 時出現 Sending build context to Docker daemon 的檔案過大,例如:
$ docker build -t my-war /home/workspace/my-war
Sending build context to Docker daemon 15.14GB
Step 1/8 : FROM tomcat:8.5.15-jre8
---> b8dfe9ade316
Step 2/8 : RUN rm -rf $CATALINA_HOME/webapps/ROOT
---> Using cache
---> e4a4d6901da0
……下略
經查詢,這是因為 Docker 在布署時,會把資料夾(上例就是指/home/workspace/my-war
)都複製到「容器」中。
假設該資料夾有 log 之類的檔案,零零總總加起來,就會讓整個容器過大。
要解決這問題,最簡單就是刪除多於檔案。
不然,可以追加 .dockerignore 檔來處理
例如我可以建立 /home/workspace/my-war/.dockerignore
:
# 忽略 logs 中所有檔案
/logs
# 忽略 git
**/.git
路徑的規則是採用 golang 的 filepath.Match
參考資料
(N.d). Dockerfile reference. Docker Documentation. https://docs.docker.com/engine/reference/builder/#dockerignore-file
Orozco, T. (2014, October 28). Re: build context for docker image very large. Stack Overflow. https://stackoverflow.com/a/26604307/1618596
司徒. (N.d). 為何"Sending build context to Docker daemon"會送很大的檔案. 司徒的教學網站. https://steward-fu.github.io/website/system/docker/fix_sending.htm
沒有留言:
張貼留言