gpt4 book ai didi

docker - 命名的 docker 卷未使用 docker-compose 更新

转载 作者:行者123 更新时间:2023-12-05 00:51:16 26 4
gpt4 key购买 nike

我正在尝试使用一项服务来构建我的客户端,然后使用命名卷将其共享到服务器。每次做一个docker-compose up --build我希望客户端构建和更新命名卷 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

客户端 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"]

最佳答案

根据定义,卷是 docker 不会触及的持久目录,除了在它们为空时执行初始创建之外。如果这是您的代码,它可能不应该是一个卷。

话虽如此,您可以:

  • 使用 docker-compose down -v 删除运行之间的卷它将在下一个 docker-compose up -d 上重新创建和初始化.
  • 更改容器启动脚本以在启动时将文件从镜像中的某个其他目录复制到卷位置。
  • 去掉音量,直接在图片中包含代码。

  • 我推荐后者。

    关于docker - 命名的 docker 卷未使用 docker-compose 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44678042/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com