{T}

服务镜像构建和容器部署

通过在工程中配置 Dockerfile 和相关文件,进行镜像的打包和发布,以及 IDEA 中配置 Docker 连接进行镜像和服务的启动关闭管理

基于目前 ChatGPT-API 部分开发到第2节时,小傅哥带着大家完成一下应用服务的镜像打包和部署操作。因为这个时候代码的开发量还不多,也不需要在部署的时候考虑如:MySQL、Redis 以及各个配置文件的操作

整个流程为;在工程中添加 Dockerfile 配置文件,对工程进行镜像打包。并把工程推送到本地和远程 Docker 仓库进行部署验证。

镜像配置

首先需要在 chatgpt-api 工程中添加 Dockerfile 文件,这样才能去操作镜像文件的打包处理。项目根目录共 3 个文件;Dockerfile、build.sh、start.sh

Dockerfile

dockerfile
# 基础镜像(openjdk:8 已过时,使用 eclipse-temurin LTS 版本)
FROM eclipse-temurin:21-jre
# 配置
ENV PARAMS=""
# 时区
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 添加应用
ADD target/chatgpt-api.jar /chatgpt-api.jar
## 在镜像运行为容器后执行的命令
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /chatgpt-api.jar $PARAMS"]

Build.sh

python
sudo docker build -f ./Dockerfile -t zhangzhengyang1993/chatgpt-api .

Start.sh

python
docker run -p 8088:8088 \
--name chatgpt-api \
-d zhangzhengyang1993/chatgpt-api

构建前先 clean,然后 install 打包,运行 Build.sh 脚本,最后运行 Start.sh 脚本

推送镜像

把文件推送到 Docker 的仓库

创建仓库

https://hub.docker.com/repository/create?namespace=zhangzhengyang1993

Push 镜像

打开 Docker 找到 Images 你的镜像,通过 Push to Hub 把你的镜像推送到仓库中

使用镜像

在安装 Docker 发服务器上,执行此段脚本,即可运行服务

python
docker run -p 8080:8080 \
--name chatgpt-api \
-d zhangzhengyang1993/chatgpt-api

版本差异(Dockerfile → 2026)

特性旧版(openjdk:8-jre-slim)当前
基础镜像openjdk:8(已过时且不再更新)eclipse-temurin:21-jre(LTS,官方维护)
构建docker build 裸命令docker buildx(多架构)+ 镜像仓库 CI 流水线
JVM 参数容器内建议配置 -XX:MaxRAMPercentage 等
部署docker rundocker compose / K8s(Pod 声明式管理)

Dockerfile 结构(基础镜像 + 时区 + 添加 jar + 启动命令)不变;基础镜像务必升级到 eclipse-temurin LTS,并配合多阶段构建减小镜像体积。