【问题标题】:cp: can't create '/node_modules/mongo-express/config.js': File existscp:无法创建'/node_modules/mongo-express/config.js':文件存在
【发布时间】:2021-08-10 17:23:08
【问题描述】:

kubernetes 卷挂载问题。

mongo-express 容器有一个文件 /node-modules/mongo-express/config.js

我需要用我的 /tmp/config.js

覆盖 /node-modules/mongo-express/config.js

我正在尝试将 /tmp 下的自定义 config.js(由 ConfigMaps 挂载)复制到容器路径 /node-modules/mongo-express 下的文件夹中。

但我无法做到这一点并得到以下错误:

cp: 无法创建 '/node_modules/mongo-express/config.js': 文件存在

我们可以在下面找到我用来实现此目的的 deployment.yaml

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mongo-express
spec:
  selector:
    matchLabels:
      app: mongo-express
  template:
    metadata:
      labels:
        app: mongo-express
    spec:
      containers:
        - name: mongo-express
          image: mongo-express:latest
          command:
            - sh
            - -c
            - cp /tmp/config.js /node_modules/mongo-express
          ports:
            - name: mongo-express
              containerPort: 8081
          volumeMounts:
            - name: custom-config-js
              mountPath: /tmp
      volumes:
        - name: custom-config-js
          configMap:
            name: mongodb-express-config-js

我试过了:

  • cp -f /tmp/config.js /node_modules/mongo-express
  • cp -r /tmp/config.js /node_modules/mongo-express
  • \cp -r /tmp/config.js /node_modules/mongo-express

等等。 但没有成功。非常感谢任何帮助。

【问题讨论】:

    标签: docker kubernetes mongo-express


    【解决方案1】:

    大多数容器图像是不可变的。

    您可能想要的是 subPath 挂载:

    volumeMounts:
    - mountPath: /node_modules/mongo-express/config.js
      name: custom-config-js
      subPath: config.js
    

    【讨论】:

      猜你喜欢
      • 2017-02-09
      • 2022-09-29
      • 2022-07-04
      • 2022-12-19
      • 2021-07-06
      • 2021-05-02
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      相关资源
      最近更新 更多