Как включить тома в мою конфигурацию докера? - PullRequest
0 голосов
/ 13 апреля 2019

У меня есть конфигурация docker-compose для приложения MEAN, которая работает нормально.

Я бы хотел, чтобы мои угловые (ng serve) и экспресс-серверы (nodemon) автоматически запускались при нажатии клавиш ctrl + s, как если бы я запускал свое приложение локально.

Для этого мои контейнеры должны знать, что файлы изменились.

Как я могу это сделать?

Dockerfile Angular:

FROM node:10

RUN mkdir -p /usr/src/app

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . ./

EXPOSE 4200

CMD ["npm", "start"]

Докер-файл Экспресса:

FROM node:6

RUN mkdir -p /usr/src/app

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . ./

EXPOSE 3000

CMD ["npm", "start"]

docker-compose.yml:

version: '3'

services:
  angular: # name of the first service
    build: client # specify the directory of the Dockerfile
    ports:
      - "4200:4200"

  express: #name of the second service
    build: server # specify the directory of the Dockerfile
    ports:
      - "3000:3000"
    links:
      - database

  database: # name of the third service
    image: mongo
    ports:
      - "27017:27017"

И Angular, и Express имеют .dockerignore для node_modules

1 Ответ

0 голосов
/ 13 апреля 2019

Если вы находитесь в среде разработчика, вы можете добавить раздел volumes в свой docker-compose.yml, как показано ниже:

services:
  angular: # name of the first service
    build: client # specify the directory of the Dockerfile
    ports:
      - "4200:4200"
   volumes:
      - /path/in/host/machine:/path/in/container

  express: #name of the second service
    build: server # specify the directory of the Dockerfile
    ports:
      - "3000:3000"
    links:
      - database
    volumes:
      - /path/in/host/machine:/path/in/container

  database: # name of the third service
    image: mongo
    ports:
      - "27017:27017"

Ссылка:

томов в docker-compose

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