我有一个使用Dockerfile创建的映像
FROM mhart/alpine-node:latest
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY src /app
现在在docker-compose.yml中,我创建此图像
version: '3.7'
services:
enginetonic:
build:
context: .
image: enginetonic:compose
mongodb:
image: mongo:latest
container_name: 'mongodb'
ports:
- 27017:27017
restart: always
monitor-service:
image: enginetonic:compose
container_name: monitorService
command: nodemon monitor/monitor.js
restart: on-failure
#common services
access-token-service:
image: enginetonic:compose
container_name: accessTokenService
command: nodemon service/access-token-service/access-token-service.js
restart: on-failure
depends_on:
- mongodb
在要绑定的所有文档中:装载或使用我发现的卷,它与其他docker命令一起使用
示例
$ docker service create \
--mount 'type=volume,src=<VOLUME-NAME>,dst=<CONTAINER-PATH>,volume-driver=local,volume-opt=type=nfs,volume-opt=device=<nfs-server>:<nfs-path>,"volume-opt=o=addr=<nfs-address>,vers=4,soft,timeo=180,bg,tcp,rw"'
--name myservice \
<IMAGE>
如何使用卷,以便每个服务覆盖整个/src/
目录,以便我以nodemon开头的每个服务都反映整个源代码中更改的文件?
答案 0 :(得分:1)
我会像这样在docker-compose.yml
中进行体积映射:
volumes:
- ./app/monitor:/path/to/your/workdir/monitor
并调整命令以使用文件监控器(例如nodemon)在文件发生任何更改时重新启动服务:
command: ["nodemon", "/path/to/your/workdir/monitor/monitor.js"]
您可能需要根据需要调整nodemon参数或配置。
PS。您无需标记/推送图像。只需直接在docker-compose#build
中构建它