- 思路(本地装linux debian子系统,现在window10安装很方便,5分钟搞定)
- 打包jar包
- 连接服务服务器,如果docker挂载jar目录不存在,创建挂载目录(通常第一次构建需要)
- 创建一个配置文件(也可以不创建、上传本地文件配置文件也可)
- scp更新本地jar包和dockerfile文件到服务器
- 如果已经存在镜像,更新jiar包,重启服务即可;(第一次,创建镜像、运行启动容器)
- 具体实现代码如下
- 安装debian子系统
- 打开网站 Microsoft Store - Generation Project (v1.2.3) [by @rgadguard & mkuba50]
- 打开microsoft 网页版Microsoft Apps
- 搜索debian,点击应用,进入详情界面
4、粘贴上面的地址,贴到我们第一步的url里面,搜索如下图,x64,x86,arm64等等,根据自己电脑的平台下载,注意选择后缀为.appx
或者.AppxBundle
的下载,.EAppxBundle
只适用于Windows Xbox平台。
5、下载完成之后进入自己的下载目录,Add-AppxPackage 执行下载程序;便可安装完成;第一次进入系统设置用户名密码即可。
Add-AppxPackage .\Microsoft.Todos_2.75.52061.0_neutral_~_8wekyb3d8bbwe.AppxBundle
发布脚本
#!/usr/bin/env bash
SERVER=xxx.xxx.xxx.xxx
APP_NAME=platform
JAR_FILE=build/publish/app.jar
JAR_PATH=$(dirname $JAR_FILE)
./gradlew bootjar || exit 1
# shellcheck disable=SC2087
ssh root@$SERVER -p 122 << EOF
if [ ! -d /opt/$APP_NAME/$JAR_PATH ]; then
mkdir -p /opt/$APP_NAME/$JAR_PATH
touch /opt/$APP_NAME/application-prod.yml
fi
EOF
scp -P 122 Dockerfile root@$SERVER:/opt/$APP_NAME/Dockerfile || exit 1
scp -P 122 $JAR_FILE root@$SERVER:/opt/$APP_NAME/"$JAR_PATH"/app_new.jar || exit 1
# shellcheck disable=SC2087
ssh root@$SERVER -p 122 << EOF
if [ "\$(docker ps -a --format '{{.Names}}' | grep -w $APP_NAME)" == "$APP_NAME" ]; then
docker stop $APP_NAME || exit 1
mv /opt/$APP_NAME/$JAR_PATH/app_new.jar /opt/$APP_NAME/$JAR_PATH/app.jar || exit 1
docker start $APP_NAME || exit 1
else
cd /opt/$APP_NAME
mv $JAR_PATH/app_new.jar $JAR_PATH/app.jar || exit 1
docker build . -t com.lx/$APP_NAME:latest || exit 1
docker run -it \
--restart always \
--name $APP_NAME \
-v /opt/$APP_NAME/$JAR_PATH/app.jar:/build/app.jar \
-v /opt/$APP_NAME/logs:/build/logs \
-v /opt/$APP_NAME/application-prod.yml:/build/application-prod.yml \
-p 18080:8080 \
-p 15050:5050 \
-e TZ=Asia/Shanghai \
-e SPRING_PROFILES_ACTIVE=prod \
-d com.lx/$APP_NAME:latest || exit 1
fi
EOF
Dockerfile
FROM openjdk:11-jdk
ENV SPRING_PROFILES_ACTIVE dev
RUN mkdir -p /build/logs
EXPOSE 8080
EXPOSE 5050
WORKDIR /build
COPY build/publish/app.jar /build/app.jar
CMD export spring_profiles_active=$SPRING_PROFILES_ACTIVE
ENTRYPOINT ["java","-jar","/build/app.jar"]
QQ技术交流群:707 196 135 (大前端技术交流群)