我有一个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 文件,以便部署新的源代码?