Ero*_*Ero 7 docker docker-compose
我正在尝试使用一项服务来构建我的客户端,然后使用命名卷将其共享到服务器。每次我做一个docker-compose up --build
我希望客户端构建和更新命名的 volume clientapp:
。我怎么做?
docker-compose.yml
version: '2'
volumes:
clientapp:
services:
database:
image: mongo:3.4
volumes:
- /data/db
- /var/lib/mongodb
- /var/log/mongodb
client:
build: ./client
volumes:
- clientapp:/usr/src/app/client
server:
build: ./server
ports:
- "3000:3000"
environment:
- DB_1_PORT_27017_TCP_ADDR=database
volumes:
- clientapp:/usr/src/app/client
depends_on:
- client
- database
Run Code Online (Sandbox Code Playgroud)
客户端 Dockerfile
FROM node:6
ENV NPM_CONFIG_LOGLEVEL warn
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN npm install
COPY . /usr/src/app
# builds my application into /client
CMD ["npm", "build"]
Run Code Online (Sandbox Code Playgroud)
根据定义,卷是 docker 不会触及的持久目录,除了在它们为空时执行初始创建之外。如果这是您的代码,它可能不应该是一个卷。
话虽如此,您可以:
删除运行之间的卷docker-compose down -v
,它将在下一次重新创建和初始化docker-compose up -d
。
更改容器启动脚本以在启动时将文件从映像中的某个其他目录复制到卷位置。
去掉音量,直接在图片中包含代码。
我推荐后者。
归档时间: |
|
查看次数: |
8019 次 |
最近记录: |