【发布时间】:2021-01-14 18:06:14
【问题描述】:
我正在努力简化我们的部署过程。目前,我们为 Spring Boot 应用程序构建了一个 jar 文件,然后使用以下 DockerFile 构建一个镜像。
FROM [DTRServer]/java/javaimage_mmddyyyy:8
EXPOSE 8080
COPY /conf/myapp-conf.yaml /etc/k8t/myapp-conf.yaml
ADD target/myapp_mmddyyyy.jar myapp.jar
ENTRYPOINT ["java", "-jar", "myapp.jar", "--spring.config.location=/etc/k8t/myapp-conf.yaml"]
在我们的 k8t 中,我们创建了一个 Configmap(app-config)。所以我们的 deployment.yaml 就像
containers:
- image: [DTRServer]/projectname/myappimage:0.2.4-43
imagePullPolicy: Always
name: myapp
ports:
- containerPort: 8080
volumeMounts:
- name: myapp-conf
mountPath: /etc/k8t/
volumes:
- name: myapp-conf
configMap:
name: myapp-conf
为什么构建时需要在Dockerfile中指定spring.config.location?我们将使用 Configmap。所以我从 Dockerfile 和 deployment.yaml 中删除了配置文件信息。
FROM [DTRServer]/java/javaimage_mmddyyyy:8
EXPOSE 8080
ADD target/myapp_mmddyyyy.jar myapp.jar
ENTRYPOINT ["java", "-jar", "myapp.jar"]
containers:
- image: [DTRServer]/projectname/myappimage:0.2.4-43
imagePullPolicy: Always
name: myapp
ports:
- containerPort: 8080
volumes:
- name: myapp-conf
configMap:
name: myapp-conf
那么,pod 不喜欢它。它抱怨它找不到配置值。如何在没有配置信息的情况下构建镜像,并使用 Configmap 启动 pod?
【问题讨论】:
标签: spring-boot dockerfile configmap