У меня есть файл docker-compose.yml
, состоящий из двух служб (оба основаны на DockerFile). Я собрал образы один раз (используя команду: docker-compose build
), и они были запущены, как только я выполнил эту команду (docker-compose up
).
Мне пришлось изменить исходный код, используемый для одной из служб, однако, когда я перестроил изображения (docker-compose build
), изменения кода не были отражены после того, как я запустил службы (docker-compose up
).
docker-compose.yml
version: '2'
services:
serviceOne:
build:
context: ./ServerOne
args:
PORT: 4000
ports:
- "4000:4000"
env_file:
- ./ServerOne/.env
environment:
- PORT=4000
serviceTwo:
build:
context: ./serviceTwo
args:
PORT: 3000
ports:
- "3000:3000"
env_file:
- ./serviceTwo/.env
environment:
- PORT=3000
- serviceOne_URL=http://serviceOne:4000/
depends_on:
- serviceOne
serviceOne / DockerFile
FROM node:8.10.0
RUN mkdir -p /app
WORKDIR /app
ADD package.json package-lock.json /app/
RUN npm install
COPY . /app/
RUN npm build
EXPOSE ${ACC_PORT}
CMD [ "npm", "start" ]
serviceTwo / DockerFile
FROM node:8.10.0
RUN mkdir -p /app
WORKDIR /app
ADD package.json package-lock.json /app/
RUN npm install
COPY . /app/
RUN npm build
EXPOSE ${ACC_PORT}
CMD [ "npm", "start" ]
Ниже приводится вывод docker-compose
, когда он запускается во второй раз.
Это как снова использовать кэшированные изображения, когда запускаются команды COPY и npm build .
Как можно изменить файл DockerFile или docker-compose , чтобы развернуть новый исходный код?