我有一个包含两个容器的Pod,Nginx和Rails。我想将rails中的公共文件夹共享到nginx容器中,但是公共文件夹中已经包含了文件,我不希望该文件夹为空。
有没有共享卷的方法?
我试过了:
- name: rails-assets
hostPath:
path: /app/public但是我得到了这个错误:
Error: failed to start container "nginx": Error response from daemon: {"message":"error while creating mount source path '/app/public': mkdir /app: read-only file system"}
Error syncing pod
Back-off restarting failed container谢谢,
发布于 2017-11-15 16:06:57
我修复了在rails应用上创建共享卷shared-assets/的问题。在rails dockerfile上,我使用bash脚本创建了一个入口点,用于复制shared-assets/文件夹中的public/文件。这样我就可以在Nginx容器上看到文件了。
---
kind: Deployment
apiVersion: apps/v1beta1
metadata:
name: staging-deployment
spec:
replicas: 1
revisionHistoryLimit: 2
template:
metadata:
labels:
app: staging
spec:
containers:
- name: staging
image: some/container:v5
volumeMounts:
- mountPath: /var/run/
name: rails-socket
- mountPath: /app/shared-assets
name: rails-assets
- name: nginx
image: some/nginx:latest
volumeMounts:
- mountPath: /var/run/
name: rails-socket
- mountPath: /app
name: rails-assets
imagePullSecrets:
- name: app-backend-secret
volumes:
- name: rails-socket
emptyDir: {}
- name: rails-assets
emptyDir: {}和脚本入口点:
cp -r /app/public/ /app/shared-assets/https://stackoverflow.com/questions/47270229
复制相似问题