gpt4 book ai didi

docker - K8s 不在 Persistent Volume 上挂载文件

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

我有一个 Docker 镜像,我想在 Kubernetes 上的一个卷(持久卷)上共享整个目录。

Dockerfile

FROM node:carbon
WORKDIR /node-test
COPY hello.md /node-test/hello.md
VOLUME /node-test
CMD ["tail", "-f", "/dev/null"]

基本上它复制一个文件 hello.md并使其成为图像的一部分(我们称之为 my-image )。

在 Kubernetes 部署配置中,我从 my-image 创建了一个容器我将特定目录共享到一个卷。

Kubernetes 部署
# ...
spec:
containers:
- image: my-user/my-image:v0.0.1
name: node
volumeMounts:
- name: node-volume
mountPath: /node-test
volumes:
- name: node-volume
persistentVolumeClaim:
claimName: node-volume-claim

我希望看到 hello.md文件在持久卷的目录中,但没有显示。

如果我不将容器绑定(bind)到卷,我可以看到 hello.md文件(带有 kubectl exec -it my-container bash )。

我没有做任何与此 official Kubernetes example 不同的事情做。事实上我可以改变 mountPath并切换到官方的 Wordpress 图像,它按预期工作。

怎么可能 Wordpress image将所有文件复制到卷目录中?

我的 Wordpress Dockerfile 中缺少什么?

最佳答案

为了不覆盖现有的文件/内容,您可以使用 subpath 将 testdir 目录(在下面的示例中)挂载到现有的 Container 文件系统中。

 volumeMounts:
- name: node-volume
mountPath: /node-test/testdir
subPath: testdir
volumes:
- name: node-volume
persistentVolumeClaim:
claimName: node-volume-claim

你可以在这里找到更多信息 using-subpath

关于docker - K8s 不在 Persistent Volume 上挂载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54896056/

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