1 Вопрос: Почему Docker не компилирует мои исходные файлы микросервисов?

вопрос создан в Thu, May 2, 2019 12:00 AM

Я только начал использовать 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 не компилирует исходные файлы в папке проекта, но использует файлы из каталога dir /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:
    [..]
    
0
  1. Можете ли вы опубликовать точное сообщение об ошибке?
    2019-05-02 15: 15: 24Z
  2. Ваш файл docker-compose.yml, вероятно, также актуален: существует очень распространенный шаблон, который скрывает все, что делает Dockerfile.
    2019-05-02 15: 26: 13Z
  3. нет сообщений об ошибках. Если для ex. Я редактирую main.py, изменяя сообщение журнала, я не вижу изменений. Я предполагаю, потому что компилятор Docker не компилирует файлы, которые я ожидаю.
    2019-05-02 15: 42: 36Z
  4. @ DavidMaze Я добавил файл для создания докера. Спасибо
    2019-05-02 15: 46: 02Z
1 ответ                              1                         

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
    
1
2019-05-03 08: 08: 06Z
источник размещен Вот