# Docker部署
容器化部署,需要调整两个文件, 分别是 api/Dockerfile 和 build-api.sh | build-api.bat 里面的脚本。
Dockerfile ,请根据实际的情况进行调整。
FROM openjdk:11-jre-slim
VOLUME /tmp
#设置工作目录
WORKDIR /lcdp
# 设置环境变量
ENV LANGUAGE zh_CN:zh
ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8
ENV TIME_ZONE Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone
ARG JAVA_OPTS=""
#复制jar包和资源文件到容器内
COPY target/demo .
CMD java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -DLOG_FILE=logs/app.log -DLOG_FILE_MAX_SIZE=30MB -DLOG_FILE_MAX_HISTORY=100 -jar app.jar
修改 build-api.sh(windows同理), 和传统方式部署最大区别在于增加了 docker image 的构建和推送。
#!/bin/sh
cd ./api
# jsw
#mvn clean package -Dmaven.test.skip=true appassembler:generate-daemons -Djsw
# jar
mvn clean package -Dmaven.test.skip=true
registry=<changeit> # 仓库地址,例如: registry.bingosoft.net/bingofuse/
image=<changeit> # 镜像名称
# version=latest-arm64
# arch=linux/arm64
version=latest
arch=linux/x86_64
# docker
docker buildx build -t ${image}:${version} --platform=${arch} . --load
docker tag ${image}:${version} ${registry}${image}:${version}
# docker push ${registry}${image}:${version}
# 执行脚本
在工程的根目录下,内置了执行打包的脚本
- mac或者linux
# 如遇到权限问题,授权执行脚本
chmod 777 build-*
先执行 build-ui.sh, 再执行 build-api.sh
- windows
先执行 build-ui.bat, 再执行 build-api.bat
# 查看镜像
镜像构建成功后,可以通过以下命令查看生成的结果
docker images
# 镜像部署
利用docker基础命令启动。
docker run -p 8080:8080 -d <image name>