OpenShift将文件从容器复制到PVC

时间:2020-05-11 13:06:10

标签: docker openshift docker-image persistent-volumes

我的问题很奇怪,我的想法已经用完了。我有一个OpenShift部署,但不幸的是我没有RBAC访问权限,因此任何rsync和其他优点对我都不适合。总结一下……我创建了一个存储,该存储在路径为/ usr / local / tomcat / fop的2个应用程序之间共享,并且我有一个基于映像的构建。用于构建的映像以前是在我的计算机上本地构建为二进制构建的,在其Dockerfile中,我在其中添加了几个文件,例如:

COPY fop.xconf /usr/local/tomcat/fop/conf/fop.xconf
COPY ExperianPDF2016.gif /usr/local/tomcat/fop/img/
COPY PDF_Transformation.xslt /usr/local/tomcat/fop/transformation/

RUN [ -d /usr/local/tomcat/fop/xml ] || mkdir -p /usr/local/tomcat/fop/xml
RUN [ -d /usr/local/tomcat/fop/reports ] || mkdir -p /usr/local/tomcat/fop/reports
RUN [ -d /usr/local/tomcat/fop/output ] || mkdir -p /usr/local/tomcat/fop/output

因此,如果我在不添加存储的情况下部署映像,会发生什么情况-很好,所有文件都在这里,但是我没有读/写文件的权限,并且也不会与其他应用程序共享。但是,如果我映射存储并说我具有/ usr / local / tomcat / fop的安装路径,那么我就拥有该文件夹,并且该文件夹在应用程序之间共享,但是它是空的,映像中的任何内容都没有。

在我们的DEV环境中,我使用oc rsync在文件夹中添加了丢失的文件,但是在下一个环境中,我没有RBAC权限,也没有“终端”访问权限,也没有rsync。

任何解决此问题的方法将不胜感激。

[更新]

根据我的建议,我可以使用Init容器方法。这是我的部署配置:

spec:
  containers:
    - image: >-
        docker-registry.default.svc:5000/ob-orc-dev/pdf-maker@sha256:a4eadb602e4afb5bf25cc17b916b848cecc06a05d1cd69000cd84feb70df63bd
      imagePullPolicy: Always
      name: bat-dancho
      ports:
        - containerPort: 8080
          protocol: TCP
      resources: {}
      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File
      volumeMounts:
        - mountPath: /usr/local/tomcat/fop123
          name: pdf-tst
          subPath: xml
  dnsPolicy: ClusterFirst
  initContainers:
    - command:
        - /bin/sh
        - '-c'
        - cp -R ~/usr/local/tomcat/fop/* ~/usr/local/tomcat/fop123
      image: >-
        docker-registry.default.svc:5000/ob-orc-dev/pdf-maker@sha256:a4eadb602e4afb5bf25cc17b916b848cecc06a05d1cd69000cd84feb70df63bd
      imagePullPolicy: Always
      name: init-myservice
      resources: {}
      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File
      volumeMounts:
        - mountPath: /usr/local/tomcat/fop123
          name: pdf-tst
          subPath: xml

0 个答案:

没有答案