gpt4 book ai didi

spring-boot - 如何在spring boot gradle task "bootBuildImage"构建的cloudfoundry buildpack docker镜像中设置区域设置和编码

转载 作者:行者123 更新时间:2023-12-04 08:20:27 24 4
gpt4 key购买 nike

当我使用 spring boot 应用程序创建 docker 镜像时,我看到使用 spring boot 应用程序安装到正在运行的容器中的目录的文件名中存在编码问题。我通过 gradle 任务创建 docker 镜像 bootBuildImage如所述 here .
当我查看正在运行的容器时,我看到语言环境设置为 posix。在常规 Dockerfile 中,我会运行适当的命令来设置德语 utf-8 语言环境设置。但是 Spring Boot 正在使用 Cloud Foundry buildpacks,我找不到可以连接到语言环境设置的地方。如何在构建过程中调整图像的语言环境?

cnb@9d24bfe67b9e:/$ locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

最佳答案

默认情况下,Spring Boot Gradle 插件使用 Paketo builder image and run image .运行镜像为生成的应用程序镜像提供基本操作系统层,这就是语言环境的来源。
覆盖区域设置的一种方法是基于 Paketo 运行镜像生成自定义运行镜像并在自定义运行镜像中设置区域设置。自定义运行镜像的 Dockerfile 可能如下所示:

FROM paketobuildpacks/run:base-cnb

USER root
RUN apt-get install -y locales
RUN locale-gen de_DE.utf8
ENV LANG de_DE.UTF-8
ENV LANGUAGE de_DE:de
ENV LC_ALL de_DE.UTF-8
构建并标记自定义运行镜像后,您可以覆盖 Spring Boot Gradle 插件中的默认运行镜像 configurationrunImage属性或在命令行上使用 ---runImage旗帜。

关于spring-boot - 如何在spring boot gradle task "bootBuildImage"构建的cloudfoundry buildpack docker镜像中设置区域设置和编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65524052/

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