# Docker部署

容器化部署,需要调整两个文件, 分别是 api/Dockerfilebuild-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>
顶部