作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题:我有一个非常简单的spring boot api,带有硬编码的db连接字符串。我想从我的K8s集群中的Pod中提供这些连接字符串,但是告诉api从env变量读取时出现问题。
我的Dockerfile:
FROM gcr.io/distroless/java:8
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
apiVersion: v1
kind: Secret
metadata:
name: db-secret
data:
host: XXXX
user: XXXX
password: XXXX
database: XXXX
env:
- name: ORIGIN
value: https://myclient.app.com
- name: HOST
valueFrom:
secretKeyRef:
name: db-secret
key: host
- name: PASSWORD
valueFrom:
secretKeyRef:
name: db-secret
key: password
- name: USERNAME
valueFrom:
secretKeyRef:
name: db-secret
key: user
- name: DATABASE
valueFrom:
secretKeyRef:
name: db-secret
key: database
spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=${HOST}/"todos"
spring.datasource.username=${USERNAME}
spring.datasource.password=${PASSWORD}
最佳答案
加载环境变量需要一些配置,否则将找不到任何db-secret.yaml
文件。
一种方法是将配置值直接放入application.properties
或application.yml
中。您可能还需要确保这些文件未提交到存储库中(例如,添加到.gitignore
中)。
关于java - 从Spring Boot API(K8s,Docker,Spring,Java)解耦数据库连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61132380/
我是一名优秀的程序员,十分优秀!