docker build 镜像时deamo过大导致cannot allocate memory的问题

docker build 镜像时deamo过大导致cannot allocate memory的问题

[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中
#
#

docker build 镜像时deamo过大导致cannot allocate memory的问题
docker build 镜像时deamo过大导致cannot allocate memory的问题

#
#
#
#
#

docker build 镜像时deamo过大导致cannot allocate memory的问题

#
#
#
#

[root@jenkins-master DEV-sk_platform_brand_furniture]# cat .dockerignore 
*
!Dockerfile
!publish/*
!run.sh
!web.conf

#
#
docker build 镜像时deamo过大导致cannot allocate memory的问题
#
#

第一行的"*"表示的意思是把所有目录都拒绝了
第二行 !Dockerfile 代表允许此文件
第三行"!publish/*"表示被接受的路径,把我们的目录也添加到这里,再docker build就OK了

#
#
#
#

docker build 镜像时deamo过大导致cannot allocate memory的问题

#
#
注意也可以使用.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的问题

docker build 镜像时deamo过大导致cannot allocate memory的问题

猜你喜欢

转载自blog.51cto.com/13386520/2350850
今日推荐