gpt4 book ai didi

docker - 使一个容器中的目录可用于另一个容器,同时保留原始容器中的文件

转载 作者:行者123 更新时间:2023-12-02 19:28:38 27 4
gpt4 key购买 nike

假设您有一个包含Rails应用程序的图像,其中包含 Assets 。您想从另一个运行Nginx的容器中为它们提供服务。

从我收集的数据来看,装入卷会使目录的内容消失。因此,如果您将一个卷装入两个容器中,例如,

volumes:
assets:
services:
app:
volumes:
assets:/app/public/assets
nginx:
volumes:
assets:/assets

他们俩都会看到一个空文件夹。您可以手工将其填满。但是,如果要部署Rails应用程序镜像的更新版本,则这两个将看不到更改。

我想念什么吗?有没有一种方法可以处理文件,而无需将其代理到Rails应用或将它们从一个容器复制到另一个容器?

UPD 第一个具有非空目录的容器,该容器将挂载卷,并确定其初始内容。

最佳答案

您可以在将Rails启动到Rails图像的Dockerfile(CMDENTRYPOINT)之前添加以下行:

rm -r /assets/*
cp -r /app/public/assets/* /assets

并将两个服务的卷装入 /assets中。

这样,每次您的容器重新启动时(更改时在 docker stack deploy上),该卷将被nginx容器可见的新 Assets 重新填充。

关于docker - 使一个容器中的目录可用于另一个容器,同时保留原始容器中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53764776/

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