docker-compose и использование локального образа с подключенным томом - PullRequest
0 голосов
/ 16 октября 2018

У меня есть образ, который я создаю с помощью Dockerfile

FROM mhart/alpine-node:latest

WORKDIR /app
COPY package*.json ./
RUN npm install
COPY src /app

Теперь в docker-compose.yml я создаю этот образ

version: '3.7'
services:
  enginetonic:
    build:
      context: .
    image: enginetonic:compose

  mongodb:
    image: mongo:latest
    container_name: 'mongodb'
    ports:
      - 27017:27017
    restart: always


  monitor-service:
    image: enginetonic:compose
    container_name: monitorService
    command: nodemon monitor/monitor.js
    restart: on-failure

  #common services
  access-token-service:
    image: enginetonic:compose
    container_name: accessTokenService
    command: nodemon service/access-token-service/access-token-service.js
    restart: on-failure
    depends_on:
      - mongodb

Во всей документации для привязки: монтировать или использовать томаЯ обнаружил, что он используется с другими командами docker

пример

$ docker service create \
     --mount 'type=volume,src=<VOLUME-NAME>,dst=<CONTAINER-PATH>,volume-driver=local,volume-opt=type=nfs,volume-opt=device=<nfs-server>:<nfs-path>,"volume-opt=o=addr=<nfs-address>,vers=4,soft,timeo=180,bg,tcp,rw"'
    --name myservice \
    <IMAGE>

Как использовать тома, чтобы каждая служба охватывала весь каталог /src/, чтобы каждая служба запускаласьс помощью nodemon отражает файлы, измененные во всем исходном коде?

1 Ответ

0 голосов
/ 16 октября 2018

Я бы сделал карту томов в docker-compose.yml следующим образом:

volumes:
  - ./app/monitor:/path/to/your/workdir/monitor

И настроил команду на использование файлового монитора, например nodemon , для перезапуска службы, когда есть какая-либоизменения в файле:

command: ["nodemon", "/path/to/your/workdir/monitor/monitor.js"]

Возможно, вам потребуется настроить аргументы или конфиги nodemon в соответствии с вашими потребностями.

PS.Вам не нужно отмечать / вставлять изображение.Просто создайте его прямо в docker-compose # build

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