Почему Docker не компилирует мои исходные файлы микросервисов? - PullRequest
1 голос
/ 02 мая 2019

Я только начал использовать Docker.

Я работаю над проектом, написанным другим разработчиком. В контейнере проекта Docker у меня есть три микросервиса (aggregatore, classificatore, testmicro).

В classificatore/, у меня есть:

classificatore / Dockerfile

FROM python:3
RUN mkdir /src
ADD requirements.txt /src/.
WORKDIR /src
RUN pip install -r requirements.txt
ADD . /src/.
RUN mkdir -p /tmp/reqdoc
CMD ["python", "main.py"]

Я собираю приложение, запустив:

docker-compose up -d

Я понял, что Docker не компилирует исходные файлы в папке проекта, а использует файлы в каталоге /src, созданном classificatore / Dockerfile. Я не могу найти этот реж.

Как я могу сказать докеру использовать файлы в моем проекте?

Я использую PyCharm, не знаю, полезная ли это информация: -)

РЕДАКТИРОВАТЬ 1 :

докер-compose.yml

version: '2.1'
services:
  files:
    image: busybox
    volumes:
     [..]

  grafana:
     [..]

  prometheus:
     [..]

  aggregatore:
   [..] 

  classificatore:
    build: classificatore/.
    volumes:    
      - [..]
    volumes_from: 
      - files
    ports: 
      - [..]
    command: ["python", "/src/main.py"]
    depends_on: 
      rabbit:
        condition: service_healthy

  testmicro:
    [..]    
  rabbit:
    [..]

1 Ответ

1 голос
/ 02 мая 2019

docker-compose up -d создаст образ для сервисов, которые объявляют сборку тогда и только тогда, когда в вашем локальном реестре докеров уже нет образа. Если вы docker-compose down и начнете сначала, следующий вызов просто запустит контейнеры с уже существующим образом.

Чтобы обновить существующий образ и запустить из него новый контейнер, вам нужно специально запросить сборку.

docker-compose build
docker-compose up -d

Другой вариант - использовать параметр --build.

docker-compose up -d --build

Другие полезные сценарии можно найти, изучив справку:

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