centos DOCKER COPY未反映在容器中

flseospp  于 2022-11-07  发布在  Docker
关注(0)|答案(1)|浏览(165)

Dockerfile不会从gitlab目录复制文件。下面是dockerfile,

FROM docker.elastic.co/logstash/logstash:7.16.3
USER root

RUN yum install -y curl dos2unix

COPY scripts/somefile.sh /src/app/
RUN dos2unix /src/app/somefile.sh

WORKDIR /src/app/
ENTRYPOINT ["/src/app/somefile.sh"]

“项目”树如下所示,

C:.
├───.idea
│   └───codeStyles
├───deployment
│   ├───dev
└───scripts
│   ├───somefile.sh

下面是部署。yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: demo-app
  name: demo-app
  namespace: --
spec:
  replicas: 1
  selector:
    matchLabels:
      app: demo-app
  template:
    metadata:
      labels:
        app: demo-app
    spec:
      containers:
        - image: docker-image-described
          name: demo-app
          resources: ...
          volumeMounts:
            - name: some-secret
              mountPath: /src/abc/secret
              readOnly: true
          securityContext:
            privileged: true
      restartPolicy: Always
      volumes:
        - name: very-secret
          secret:
            secretName: some-secret

进一步,使用gitlab-ci文件构建映像。然后使用此映像创建部署。请帮助我了解我做错了什么,因为当我在运行的pod中执行时,我无法在定义的目标位置看到文件。
我没有得到任何错误,这是我通常做的,如果有一个错误的源位置。我也经历了一些更类似的问题,所以我已经检查了EOL是Unix。
我还要补充一些意见,
1.我不能创建目录以及与RUN mkdir -p /src/app/scripts/这也运行没有任何错误,只是没有反映在吊舱内。

ndh0cuux

ndh0cuux1#

这可能是由于使用了旧的(错误的)Docker映像,因此未反映更改或更新。
如果映像已经存在,并且映像标记不是“latest”,Kubernetes不会提取新的映像版本。通过提取映像并在本地使用docker运行它来验证映像是否正确构建。使用不同的标记强制Kubernetes提取映像。

相关问题