2017-09-23 2 views
1

내가 10 ~ 12 분 동안 docker-compose build app 명령 정지가 실제 빌드 프로세스를 시작하기 전에 나타났습니다 :Docker Compose 빌드를 더 빠르게 만드는 방법은 무엇입니까? 도커 머신 환경에서 새로운 도커 이미지를 구축하는 동안

$ docker-compose build app 
Building app 

... 10 minutes ... 

Step 1/10 : FROM ruby:2.4.1 
---> e7ca4a0b5b6d 
... 

내가 더 설명 할 --verbose 매개 변수를 사용하려고 노력을하지만, 그 실제로 도움이되지 않았습니다 :

$ docker-compose --verbose build 
compose.config.config.find: Using configuration files: ./docker-compose.yml 
docker.auth.find_config_file: Trying paths: ['/Users/vtambourine/.docker/config.json', '/Users/vtambourine/.dockercfg'] 
docker.auth.find_config_file: Found file at path: /Users/vtambourine/.docker/config.json 
docker.auth.load_config: Couldn't find 'auths' or 'HttpHeaders' sections 
docker.auth.parse_auth: Auth data for {0} is absent. Client might be using a credentials store instead. 
compose.cli.command.get_client: docker-compose version 1.14.0, build c7bdf9e 
docker-py version: 2.3.0 
CPython version: 2.7.12 
OpenSSL version: OpenSSL 1.0.2j 26 Sep 2016 
compose.cli.command.get_client: Docker base_url: https://146.185.007.007:2376 
compose.cli.command.get_client: Docker version: KernelVersion=4.9.0-3-amd64, Arch=amd64, BuildTime=2017-09-05T19:58:57.182575033+00:00, ApiVersion=1.30, Version=17.06.2-ce, MinAPIVersion=1.12, GitCommit=cec0b72, Os=linux, GoVersion=go1.8.3 
compose.project.build: db uses an image, skipping 
compose.service.build: Building app 
compose.cli.verbose_proxy.proxy_callable: docker build <- (pull=False, cache_from=None, stream=True, nocache=False, labels=None, tag='aerostat:app', buildargs={}, forcerm=False, rm=True, path='/Users/vtambourine/Code/aerostat', dockerfile='containers/development/Dockerfile') 
docker.api.build._set_auth_headers: Looking for auth config 
docker.api.build._set_auth_headers: Sending auth config (u'auths') 
compose.cli.verbose_proxy.proxy_callable: docker build -> <generator object _stream_helper at 0x10b61f230> 

... 10 minutes ... 

Step 1/10 : FROM ruby:2.4.1 
---> e7ca4a0b5b6d 

빌드 프로세스를 더 빠르게 만드는 방법은 무엇입니까?

+0

대기 중일 때 CTRL + C를 누르고 예외 추적이 있는지 확인하십시오. –

+0

@TarunLalwani 아니요, 아무 것도 없으며 조용히 멈 춥니 다. – vtambourine

+0

작성 폴더에'du -sh .'의 결과는 무엇입니까? –

답변

1

Tarun Lalwani에게 큰 감사를드립니다. Docker 컨텍스트에 대해 배웠습니다.

빌드 컨텍스트는 지정된 위치에있는 파일 집합입니다. 내 (가장 사소한) 사례 위치는 단순히 프로젝트 디렉토리 인 .입니다. 빌드 프로세스가 수행하는 첫 번째 작업은 전체 컨텍스트를 데몬에 복사하는 것입니다. Docker Machine을 사용하여 내 컨테이너 Docker 데몬을 배포 할 때 원격 호스트에 위치하므로 전체 프로젝트 폴더가 인터넷을 통해 서버로 전송됩니다. 나는 극적으로 줄일 수 있었다 간단한 .dockerignore 규칙을 사용하여

$ docker build -t my-app -f containers/production/Dockerfile . 
Sending build context to Docker daemon 187.9MB 

: 생산 폴더에 대한 모든 불필요한와

같은 .git, tmp, 전체 크기는 방법이 거의 2백메가바이트했다

$ docker build -t my-app -f containers/production/Dockerfile . 
Sending build context to Docker daemon 151kB 

학습 된 내용 - .dockerignore을 사용하십시오.

자세한 설명은 Dockerfile reference에서 찾을 수 있습니다.

관련 문제