首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Configmap构建镜像

如何使用Configmap构建镜像
EN

Stack Overflow用户
提问于 2021-01-15 02:06:14
回答 1查看 52关注 0票数 0

我正在努力让我们的部署过程变得更简单。目前,我们为Spring Boot应用程序构建一个jar文件,然后使用以下DockerFile构建一个镜像。

代码语言:javascript
复制
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中,我们创建了一个配置映射(app-config)。所以我们的deployment.yaml是这样的

代码语言:javascript
复制
      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中的配置文件信息。

代码语言:javascript
复制
FROM [DTRServer]/java/javaimage_mmddyyyy:8
EXPOSE 8080
ADD target/myapp_mmddyyyy.jar myapp.jar
ENTRYPOINT ["java", "-jar", "myapp.jar"]
代码语言:javascript
复制
      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?

EN

回答 1

Stack Overflow用户

发布于 2021-01-15 06:37:58

Spring Boot2.4 configuration tree support可以与Kubernetes ConfigMaps一起使用。如果您希望从挂载的目录加载多个文件,使文件名成为关键字,内容成为值,则需要使用configtree:前缀。volumeMounts部分仍然需要存在于deployment.yml中,以指定应将ConfigMap数据挂载到何处。deployment.yml应该看起来像这样:

代码语言:javascript
复制
  containers:
    - image: [DTRServer]/projectname/myappimage:0.2.4-43
      imagePullPolicy: Always
      name: myapp
      ports:
        - containerPort: 8080
      volumeMounts:
        - name: myapp-conf
          mountPath: /etc/k8t/
      env:
        - name: SPRING_CONFIG_IMPORT
          value: configtree:/etc/k8t/
  volumes:
    - name: myapp-conf
      configMap:
        name: myapp-conf
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65724528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档