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/
这也运行没有任何错误,只是没有反映在吊舱内。
1条答案
按热度按时间ndh0cuux1#
这可能是由于使用了旧的(错误的)Docker映像,因此未反映更改或更新。
如果映像已经存在,并且映像标记不是“latest”,Kubernetes不会提取新的映像版本。通过提取映像并在本地使用docker运行它来验证映像是否正确构建。使用不同的标记强制Kubernetes提取映像。