gpt4 book ai didi

spring-boot - Kubernetes 目录 configMap 和 java 系统属性

转载 作者:行者123 更新时间:2023-12-02 12:04:49 25 4
gpt4 key购买 nike

我正在尝试将目录配置映射用作运行 Spring Boot 应用程序的 Docker 容器内的已安装卷。我正在将一些已安装的路径传递给诸如 spring application.yaml 之类的东西,但由于找不到配置,因此安装似乎没有按预期工作。例如

像这样创建配置图

kubectl create configmap example-config-dir \
--from-file=/example/config/

Kubernetes yaml
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: example
labels:
app: example
spec:
replicas: 1
selector:
matchLabels:
app: example
template:
metadata:
labels:
app: example
spec:
containers:
- name: example
image: example:latest
ports:
- containerPort: 8443
volumeMounts:
- name: config-vol
mountPath: /config
volumes:
- name: config-vol
configMap:
name: example-config-dir

还有 Dockerfile(还有其他步骤可以复制我没有详细说明的 jar 文件)
VOLUME /tmp
RUN echo "java -Dspring.config.location=file:///config/ -jar myjarfile.jar" > ./start-spring-boot-app.sh"
CMD ["sh", "start-spring-boot-app.sh"]

最佳答案

Create ConfigMaps from Directories 中所述和 Create ConfigMaps from files , 当您使用 --from-file 创建 ConfigMap 时, 文件名成为存储在 ConfigMap 的数据部分中的键.文件内容成为键的值。

要按照您想要的方式进行,更好的方法是像这样创建 yml

apiVersion: v1
kind: ConfigMap
metadata:
name: special-config
namespace: default
data:
SPECIAL_LEVEL: very
SPECIAL_TYPE: charm

然后像这样申请:
kubectl create -f https://k8s.io/examples/configmap/configmap-multikeys.yaml

当 pod 运行时,命令 ls /config产生以下输出:
special.level
special.type

您所做的方式应该生成一个与原始文件同名的文件,其中包含文件的内容。

关于spring-boot - Kubernetes 目录 configMap 和 java 系统属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55223833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com