kubernetes Docker卷内容和容器文件未合并[重复]

nx7onnlm  于 2023-11-17  发布在  Kubernetes
关注(0)|答案(2)|浏览(128)

此问题在此处已有答案

Docker mount to folder overriding content(1个答案)
29天前关闭
以下是我的docker文件

FROM node:16-alpine
WORKDIR /app
COPY a.txt /app

字符串
我有卷名my-volume,其中有一个名为dist的文件夹。我试图将my-volume挂载到容器中的/app。我使用下面的命令。

docker run -v my-volume:/app -itd  -e SERVICE_ENV='test01'  8ef983161140


卷正在正确挂载,但问题是容器中的a.txt文件正在被卷中的dist文件夹替换。我想合并/app中卷和容器的内容。
你知道吗?

docker run -v my-volume:/app -itd  -e SERVICE_ENV='test01'  8ef983161140


期待

/app # ls -al
total 0
drwxr-xr-x    3 root     root            18 Oct 18 15:33 .
drwxr-xr-x    1 root     root            18 Oct 18 16:22 ..
drwxr-xr-x    1 root     root            18 Oct 18 16:22 a.txt
drwxrwxr-x    3 node     node            18 Oct 18 14:11 dist

mwyxok5s

mwyxok5s1#

如果您不能将a.txt放在my-volume中,您可以将a.txt放在映像中的/app_tmp中,并在启动时运行脚本(例如,使用ENTRYPOINT),将文件从/app_tmp复制到/app(即挂载的my-volume)。

vmdwslir

vmdwslir2#

我不相信你可以将容器镜像中的内容与docker中的卷混合在同一个文件夹中。我相信docker会用卷替换指定文件夹中的所有内容。
您可以将卷附加到应用中的dist文件夹,以便dockerfile仍然保留该. txt文件,并且您可以将dist文件保存在卷中。

docker run -v my-volume:/app/dist -itd  -e SERVICE_ENV='test01'  8ef983161140

字符串

相关问题