docker build 鏡像時deamo過大導致cannot allocate memory的問題
阿新 • • 發佈:2019-02-16
copy utils cover bug try mem step 設置 job
[root@jenkins-master DEV-sk_platform_brand_furniture]# docker build -t registry.xxxx.com/sk_platform_brand_furniture_dev:master . Sending build context to Docker daemon 1.254 GB Step 1/6 : FROM basic-registry.xxxx.com/xxxx/nginx ---> 60037cd86b92 Step 2/6 : MAINTAINER waitfish from ltx_sean ---> Using cache ---> 284219de173f Step 3/6 : COPY publish/ /data/web/ mkdir /data/docker/overlay/4f23aea89c4c6b0b8544fccd100fe5ca5b68272e0891a77d85692d069cf86e8f/merged/data/web/: cannot allocate memory
#
#
在Jenkins的job根目錄下docker build 鏡像可能會因為目錄下的文件特別多特別大,導致docker daemon也跟著大進而服務器沒有可分配的內存使用。
解決這個問題有兩個辦法:
1.把Dockerfile換個目錄文件少的地方執行
2.使用.dockerignore文件,設置黑名單,該文件包含的目錄不會被發送到Docker daemon中
#
#
#
#
#
#
#
#
#
#
#
[root@jenkins-master DEV-sk_platform_brand_furniture]# cat .dockerignore * !Dockerfile !publish/* !run.sh !web.conf
#
#
#
#
第一行的"*"表示的意思是把所有目錄都拒絕了
第二行 !Dockerfile 代表允許此文件
第三行"!publish/*"表示被接受的路徑,把我們的目錄也添加到這裏,再docker build就OK了
#
#
#
#
#
#
註意也可以使用.dockerignore文件,設置黑名單
**/node_modules /src/utils/request-temp.js /.vscode .DS_Store npm-debug.log* yarn-error.log /coverage .idea yarn.lock package-lock.json *bak .vscode .history *.log functions/mock .temp/** .umi .umi-production .firebase appveyor.yml
#
#
docker build 鏡像時deamo過大導致cannot allocate memory的問題