我有一个Docker映像,我想在Kubernetes上的一个卷(一个持久卷)上共享整个目录。
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
创建一个容器,并将特定目录共享到一个卷。
# ...
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
文件,但是什么也没显示。
如果我不将容器绑定到卷,则可以看到hello.md
文件(带有kubectl exec -it my-container bash
)。
我没有做任何与此official Kubernetes example不同的事情。实际上,我可以更改mountPath
并切换到正式的Wordpress图片,它可以按预期工作。
Wordpress image如何将所有文件复制到卷目录中?
我自己缺少的Wordpress Dockerfile中有什么?
答案 0 :(得分:1)
为了不覆盖现有文件/内容,可以使用子路径在现有Container文件系统中挂载testdir目录(在以下示例中)。
volumeMounts:
- name: node-volume
mountPath: /node-test/testdir
subPath: testdir
volumes:
- name: node-volume
persistentVolumeClaim:
claimName: node-volume-claim
有关更多信息,请点击using-subpath