docker-compose up - сборка становится очень медленной при использовании облачной docker-machine - PullRequest
0 голосов
/ 29 октября 2018

docker-compose up - сборка становится очень медленной при использовании облачной docker-machine, и через час у меня появляется ошибка и не найден файл entrypoint.sh.

На локальном компьютере с докером Mac тот же конфиг работает нормально.

Мой файл Docker

FROM python:3.5.2
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD app/ /code/
ADD static/ /code/
ADD entrypoint.sh /code/

мой докер сочиняет

version: '3.7'
services:
  web:
    build: .
    command: gunicorn --bind 0.0.0.0:8000 app.wsgi
    volumes:
      - .:/code
    entrypoint: ./entrypoint.sh
    expose:
      - "80"
  nginx:
    image: nginx:1.15.5
    restart: always
    ports:
      - "80:80"
    volumes:
      - ./static:/static
    depends_on:
      - web

команды, которые я запускаю

cd myprojectfolder
eval $(docker-machine env [my-cloud-machine-name])
docker-compose -f docker-compose.yml -f envs/prd/prd.yml up --build -d

ошибка у меня через час (файлы моего проекта только 40 МБ)
ОШИБКА: для сети Невозможно запустить службу. Web: Ошибка во время выполнения OCI: container_linux.go: 348: запуск процесса контейнера вызвал "exec: \" ./ entrypoint.sh \ ": stat ./entrypoint.sh: такого файла или каталога нет" неизвестно ОШИБКА: compose.cli.main.main: Обнаружены ошибки при запуске проекта.
пожалуйста, помогите мне Спасибо

Я изменил как предложено для этой конфигурации, но ничего не изменилось. Я застрял на этом:

docker.api.build._set_auth_headers: отправка auth config ()

это мой новый конфиг

docker compose

version: '3.7'

services:
  web:
    command: gunicorn --bind 0.0.0.0:8000 app.wsgi
    entrypoint: ./entrypoint.sh
    expose:
      - "80"

  nginx:
    image: nginx:1.15.5
    restart: always
    ports:
      - "80:80"
    volumes:
      - ./static:/static
    depends_on:
      - web

мой файл prd.yml

version: '3.7'

services:
  web:
    build:
      context: .
      dockerfile: ./envs/prd/Dockerfile

  nginx:
    volumes:
      - ./envs/prd/nginx/nginx.conf /etc/nginx/nginx.conf

мой prd dockerfile

FROM python:3.5.2
ENV PYTHONUNBUFFERED 1
WORKDIR /
ADD requirements.txt .
RUN pip install -r requirements.txt
ADD app/ ./app
ADD static/ ./static
ADD envs/prd/settings.py /app/settings.py
ADD entrypoint.sh .

мой .dockerignore

.DS_Store
.dockerignore
.git/
.gitignore
README.rst
README.md
*.pyc
__pycache__
.idea/*

1 Ответ

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

Удалите объявления томов из вашего docker-compose и вместо этого скопируйте все соответствующие файлы на этапе сборки (в вашем Dockerfile). Например, в вашей службе web удалите volumes: .:/code и добавьте COPY * /code в свой Dockerfile.

...