DOCKER COPY 未反映在容器中

DOCKER COPY not reflected in container

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

下面是deployment.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/ 创建目录 这也运行没有任何错误,只是没有 反映在吊舱内。

这可能是由于使用了旧的(错误的)docker 图片,因此未反映更改或更新。

如果镜像已经存在且镜像标签不是“最新的”,Kubernetes 不会拉取新的镜像版本。通过拉取镜像并使用 docker 在本地 运行 验证镜像是否正确构建。使用不同的标签强制 kubernetes 拉取镜像。