简体   繁体   English

Dockerfile Linux 中的权限问题

[英]Permission issue in Dockerfile Linux

This is my dockerfile.这是我的 dockerfile。 Im using helm chart to deploy it.我使用掌舵图来部署它。

FROM openjdk:8
RUN addgroup -g 2000 -S iuser && adduser -u 1000 -S iuser -G iuser
RUN mkdir /database && mkdir /database/StagingArea && mkdir /database/HistoryArea
RUN mkdir /opt/i && mkdir /opt/i/jars && mkdir /opt/i/scripts && mkdir /opt/i/config
RUN echo "I_HOME=/opt/i" >> /etc/environment
RUN export I_HOME=/opt/i
RUN chmod -R 777 /database/StagingArea && chmod -R 777 /database/HistoryArea
RUN chmod -R 777 /opt/i && chmod -R 777 /opt/i/jars && chmod -R 777 /opt/i/scripts && chmod -R 777 /opt/i/config
RUN chown -R 1000:2000 /opt/i && chown -R 1000:2000 /opt/i/jars && chown -R 1000:2000 /opt/i/scripts && chown -R 1000:2000 /opt/i/config
USER iuser
WORKDIR /opt
ADD softwaredownload-routing/target/jars /opt/i/jars
ADD software-downloader/config/common /opt/i/config
ADD software-downloader/config/linux /opt/i/config
ADD software-downloader/scripts/plugins /opt/i/scripts
ADD software-downloader/scripts/linux /opt/i/scripts
EXPOSE 3000
CMD ["sh", "-c", "./i/scripts/startapplication.sh ; tail -f ./i/i_workspace/logs/softwaredownload-trace.log"]

Getting pod status 'Crashloopbackoff' with kubectl logs pod giving this error:使用 kubectl logs pod 获取 pod 状态“Crashloopbackoff”,给出此错误:

sh: ./i/scripts/startapplication.sh: Permission denied

Snippet of Deployment.yaml file of helm template helm 模板的 Deployment.yaml 文件的片段

spec:
      securityContext:
        fsGroup: 2000
      containers:
        - name: i
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
          imagePullPolicy: {{ .Values.image.pullPolicy }}
          ports:
            - containerPort: {{ .Values.service.targetPort }}
          securityContext:
            privileged: false
            allowPrivilegeEscalation: false
            runAsNonRoot: true
            runAsUser: 1000
            runAsGroup: 2000

error sh: ./i/scripts/startapplication.sh: Permission denied could indicate missing execute permission bit on the file.错误 sh: ./i/scripts/startapplication.sh: Permission denied可能表示文件上缺少执行权限位。 You can add that to the Dockerfile instructions.您可以将其添加到 Dockerfile 指令中。

RUN ["chmod", "+x", "/opt/i/scripts/startapplication.sh"]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM