云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

Dockerfile收集(1) - jdk8+springboot,解决时区和中文乱码问题

jxf315 2024-12-11 14:12:39 教程文章 33 ℃
# 使用官方的OpenJDK 8基础镜像
FROM openjdk:8-jre-alpine

# 设置时区为Asia/Shanghai
RUN apk --no-cache add tzdata \
    && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone \
    && apk del tzdata

# 设置工作目录
WORKDIR /app

# 复制构建好的Java Spring Boot JAR文件到工作目录
COPY target/your-spring-boot-app.jar /app

# 设置环境变量以解决中文乱码问题
ENV LANG=C.UTF-8

# 暴露应用程序的端口(替换为你的应用程序实际使用的端口)
EXPOSE 8080

# 定义启动命令
CMD ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "your-spring-boot-app.jar"]


  • FROM openjdk:8-jre-alpine:

FROM: 指定基础镜像。

openjdk:8-jre-alpine: 使用OpenJDK 8 JRE镜像,基于Alpine Linux。

  • WORKDIR /app:

WORKDIR: 设置工作目录,后续命令都在这个目录下执行。

/app: 工作目录的路径,这里设置为/app。

  • RUN apk --no-cache add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone && apk del tzdata:

RUN: 在构建过程中执行的命令。

apk --no-cache add tzdata: 安装tzdata包,Alpine Linux中的时区配置工具。

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime: 设置时区为Asia/Shanghai。

echo "Asia/Shanghai" > /etc/timezone: 再次确认时区设置。

apk del tzdata: 删除tzdata包,清理安装时产生的临时文件。

  • ENV LANG=C.UTF-8:

ENV: 设置环境变量。

LANG=C.UTF-8: 设置LANG环境变量为C.UTF-8,解决中文乱码问题。

  • COPY target/your-spring-boot-app.jar /app:

COPY: 复制文件或目录到容器中。

target/your-spring-boot-app.jar: 构建好的Spring Boot应用程序的JAR文件。

/app: 目标路径,将JAR文件复制到工作目录。

  • EXPOSE 8080:

EXPOSE: 声明容器要监听的端口。

8080: Spring Boot应用程序默认使用的端口,可以根据实际情况修改。

  • CMD ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "your-spring-boot-app.jar"]:

CMD: 容器启动时执行的命令。

java: Java运行时。

-Djava.security.egd=file:/dev/./urandom: 设置随机数生成器,提高应用程序启动性能。

-jar: 指定要运行的JAR文件。

your-spring-boot-app.jar: 替换为实际的Spring Boot应用程序JAR文件名。

Tags:

最近发表
标签列表