gpt4 book ai didi

不同用户的 Docker VOLUME

转载 作者:行者123 更新时间:2023-12-02 08:18:54 25 4
gpt4 key购买 nike

我正在使用 docker 和 docker-compose 来构建我的应用程序。该项目现在有两名开发人员,托管在 github 上。

我们的项目结构是:

  • sup
    • docker 文件
      • 开发者
        • 构建
          • .个人资料
          • Dockerfile
        • docker-compose.yml

现在我们有./dockerfiles/dev/docker-compose.yml像这样:

app:
container_name: sup-dev
build: ./build

./dockerfiles/dev/build/Dockerfile :

FROM sup:dev

# docker-compose tries to find .profile relative to build dir:
# ./dockerfiles/dev/build
COPY .profile /var/www/

我们像这样运行容器:

docker-compose up -d

一切正常,但由于操作系统不同,我们的代码位于不同的位置:/home/aliance/www/project对于我和/home/user/other/path/project对于第二个开发商。所以我不能只将音量指令添加到Dockerfile中.

现在我们用错误的方式解决这个问题:- 我使用 lsyncd 和我的个人配置将文件传输到容器中- 而第二个使用 volume指令进入Dockerfile但没有 promise 。

也许你知道我怎样才能写一个统一的Dockerfile对于 docker-compose将代码从不同的路径批量放入应用程序容器中?

最佳答案

主机上的文件路径应该无关紧要。为什么需要绝对路径?

您可以使用相对于 docker-compose.yml 的路径,因此对于两个开发人员来说它们应该是相同的。

Dockerfile 中的 VOLUME 指令始终与构建上下文相关,因此如果需要,可以使用如下内容:

app:
container_name: sup-dev
build: ..
dockerfile: build/Dockerfile

这样,Dockerfile 的构建上下文将成为项目根目录。

关于不同用户的 Docker VOLUME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33916793/

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