Почему Docker compose занимает слишком много времени для сборки в Windows? - PullRequest
0 голосов
/ 21 января 2019

Почему сборка в докере занимает слишком много времени, чтобы начать построение образа? Докер ждет ~ 10 минут, пока не началось. В моих изображениях нет node_modules или больших файлов.

  • Моя сеть не медленная.
  • У меня нет антивируса или брандмауэра.

Когда я добавляю флаг verbose, я могу видеть журнал:

$docker-compose --verbose -f .docker/docker-compose.my.yml build

compose.config.config.find: Using configuration files: .\.docker/docker-compose.my.yml
docker.utils.config.find_config_file: Trying paths: ['C:\\Users\\user\\.docker\\config.json', 'C:\\Users\\user\\.dockercfg']
docker.utils.config.find_config_file: Found file at path: C:\Users\user\.docker\config.json
docker.auth.load_config: Found 'auths' section
docker.auth.parse_auth: Auth data for 00000.dkr.ecr.us-east-2.amazonaws.com is absent. Client might be using a credentials store instead.
docker.auth.parse_auth: Auth data for https://index.docker.io/v1/ is absent. Client might be using a credentials store instead.
docker.auth.load_config: Found 'credsStore' section
urllib3.connectionpool._make_request: http://localhost:None "GET /v1.25/version HTTP/1.1" 200 560
compose.cli.command.get_client: docker-compose version 1.23.2, build 1110ad01
docker-py version: 3.6.0
CPython version: 3.6.6
OpenSSL version: OpenSSL 1.0.2o  27 Mar 2018
compose.cli.command.get_client: Docker base_url: http+docker://localnpipe
compose.cli.command.get_client: Docker version: Platform={'Name': 'Docker Engine - Community'}, Components=[{'Name': 'Engine', 'Version': '18.09.1', 'Details': {'ApiVersion': '1.39', 'Arch': 'amd64', 'BuildTime': '2019-01-09T19:41:49.000000000+00:00', 'Experimental': 'false', 'GitCommit': '4c52b90', 'GoVersion': 'go1.10.6', 'KernelVersion': '4.9.125-linuxkit', 'MinAPIVersion': '1.12', 'Os': 'linux'}}], Version=18.09.1, ApiVersion=1.39, MinAPIVersion=1.12, GitCommit=4c52b90, GoVersion=go1.10.6, Os=linux, Arch=amd64, KernelVersion=4.9.125-linuxkit, BuildTime=2019-01-09T19:41:49.000000000+00:00
compose.cli.verbose_proxy.proxy_callable: docker inspect_network <- ('docker_default')
urllib3.connectionpool._make_request: http://localhost:None "GET /v1.25/networks/docker_default HTTP/1.1" 404 47
compose.service.build: Building app-www
compose.cli.verbose_proxy.proxy_callable: docker build <- (path='\\\\?\\C:\\myapp', tag='docker_app-www', rm=True, forcerm=False, pull=False, nocache=False, dockerfile='./.docker/Dockerfile-app-www', cache_from=None, labels=None, buildargs={}, network_mode=None, target=None, shmsize=None, extra_hosts=None, container_limits={'memory': None}, gzip=False, isolation=None, platform=None)

Через ~ 10 минут начинается сборка образа.

.docker / докер-compose.my.yml

version: '3'
services:
  app-www:
    image: 00000000.dkr.ecr.us-east-2.amazonaws.com/app-www:latest
    build:
      context: ../
      dockerfile: ./.docker/Dockerfile-app-www

.docker / Dockerfile-приложение-WWW

FROM node:latest

WORKDIR /usr/src/app

COPY ./dist/myapp .

RUN npm install

EXPOSE 3000

CMD [ "npm", "start" ]

1 Ответ

0 голосов
/ 21 января 2019

Это может быть контекст сборки, как указано в документации, он отправляется демону Docker, что может привести к большой передаче. Из документов (выделено мое)

https://docs.docker.com/compose/compose-file/#context

Когда предоставленное значение является относительным путем, оно интерпретируется как относительно расположения файла Compose. Этот каталог также является контекстом сборки, который отправляется демону Docker .

Можно сказать, что нужно указать на папку, в которой ничего нет, и на упрощенный Dockerfile и посмотреть, запускается ли она быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...