【发布时间】:2019-08-10 11:03:21
【问题描述】:
我有一个 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 文件以便部署新的源代码?
【问题讨论】:
标签: docker docker-compose dockerfile