鼠小弟生活志 鼠小弟生活志
深圳 --°

2026-09-03Docker打包Nginx及JDK的镜像

Nginx镜像

# 使用官方的 Nginx 镜像作为基础镜像
FROM nginx:latest
 
# 维护者信息(可选)
LABEL maintainer="zhangyuxun@vip.qq.com"
 
# 创建一个目录来存放 /work 目录的内容
RUN mkdir -p /usr/share/nginx/html/work
RUN mkdir -p /var/cache/nginx/proxy_cache/tmp
#将本地的 /work 目录复制到镜像中的 /usr/share/nginx/html/work

# 将本地的 Nginx 配置文件复制到镜像中的对应位置
COPY conf/ /etc/nginx/
COPY coolvisit-ui-admin/ /usr/share/nginx/html/work/coolvisit-ui-admin/
# 暴露 Nginx 默认端口
EXPOSE  22 80 443
 
# 默认情况下,Nginx 会从 /etc/nginx/nginx.conf 加载配置,
# 因此我们不需要额外的启动命令。但如果你想确保 Nginx 以正确的配置启动,
# 你可以显式指定启动命令(通常是可选的)。
# CMD ["nginx", "-g", "daemon off;"]
 
# 默认情况下,官方 Nginx 镜像已经包含了这条 CMD 指令,
# 所以你通常不需要再添加它,除非你有特殊的启动需求。

JDK17镜像

# 使用 Eclipse Temurin 17 JRE 轻量级镜像
FROM eclipse-temurin:17-jre-alpine

# 设置工作目录
WORKDIR /app

# 复制 JAR 包到镜像中
COPY coolvisit-server.jar /app/coolvisit-server.jar

# 暴露应用端口
EXPOSE 8080

# 设置默认环境变量(运行时可通过 -e 覆盖)
ENV COOLVISIT_MYSQL_HOST=192.168.1.123
ENV COOLVISIT_MYSQL_PORT=57006
ENV COOLVISIT_MYSQL_DATABASE=coolvisit_pro
ENV COOLVISIT_MYSQL_USERNAME=root
ENV COOLVISIT_MYSQL_PASSWORD=rainbow345324
ENV COOLVISIT_REDIS_HOST=192.168.1.123
ENV COOLVISIT_REDIS_PORT=57389
ENV COOLVISIT_REDIS_DATABASE=0
ENV COOLVISIT_REDIS_PASSWORD=laifangtongcv

# JVM 参数
ENV JAVA_OPTS="-XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0 -Djava.security.egd=file:/dev/./urandom"

# 使用 Shell 格式启动(必须!Exec 格式无法解析环境变量)
CMD java $JAVA_OPTS -jar /app/coolvisit-server.jar --spring.profiles.active=prod