PowerJob/others/script/build_server_docker.sh
2020-05-20 18:56:57 +08:00

60 lines
3.0 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# -p允许后面跟一个字符串作为提示 -r保证读入的是原始内容不会发生任何转义
read -r -p "请输入Dockedr镜像版本:" version
echo "即将构建的 server 镜像oms-server:$version"
echo "即将构建的 agent 镜像oms-agent:$version"
read -r -p "任意键继续:"
# 一键部署脚本,请勿挪动脚本
cd `dirname $0`/../.. || exit
read -r -p "是否进行maven构建y/n:" needmvn
if [ "$needmvn" = "y" ] || [ "$needmvn" = "Y" ]; then
echo "================== 构建 jar =================="
mvn clean package -DskipTests -Pdev -U -e
echo "================== 拷贝 jar =================="
/bin/cp -rf oh-my-scheduler-server/target/*.jar oh-my-scheduler-server/oms-server.jar
/bin/cp -rf oh-my-scheduler-worker-agent/target/*.jar oh-my-scheduler-worker-agent/oms-agent.jar
ls -l oh-my-scheduler-server/oms-server.jar
ls -l oh-my-scheduler-worker-agent/oms-agent.jar
fi
echo "================== 关闭老应用 =================="
docker stop oms-server
docker stop oms-agent
echo "================== 删除老容器 =================="
docker container rm oms-server
docker container rm oms-agent
echo "================== 删除旧镜像 =================="
docker rmi -f tjqq/oms-server:$version
docker rmi -f tjqq/oms-agent:$version
echo "================== 构建应用镜像 =================="
docker build -t tjqq/oms-server:$version oh-my-scheduler-server/. || exit
docker build -t tjqq/oms-agent:$version oh-my-scheduler-worker-agent/. || exit
echo "================== 准备启动应用 =================="
read -r -p "是否正式发布该镜像y/n:" needrelease
if [ "$needrelease" = "y" ] || [ "$needrelease" = "Y" ]; then
read -r -p "三思请确保当前处于已发布的Master分支y/n:" needrelease
if [ "$needrelease" = "y" ] || [ "$needrelease" = "Y" ]; then
echo "================== 正在推送 server 镜像到中央仓库 =================="
docker push tjqq/oms-server:$version
echo "================== 正在推送 agent 镜像到中央仓库 =================="
docker push tjqq/oms-agent:$version
fi
fi
read -r -p "是否启动 server & agenty/n:" startup
if [ "$startup" = "y" ] || [ "$startup" = "Y" ]; then
# 启动应用(端口映射、数据路径挂载)
## -d后台运行
## -p指定端口映射容器端口宿主机端口
## --name指定容器名称
## -v--volume挂载目录宿主机目录docker内目录写入docker内路径的数据会被直接写到宿主机上常用于日志文件
## -net=host容器和宿主机共享网络容器直接使用宿主机IP性能最好但网络隔离较差
docker run -d -e PARAMS="--spring.profiles.active=product" -p 7700:7700 -p 10086:10086 -p 27777:27777 --name oms-server -v ~/docker/oms-server:/root/oms-server tjqq/oms-server:$version
sleep 1
tail --pid=$$ -f -n 1000 ~/docker/oms-server/application.log
docker run -d -e PARAMS="--app oms-agent-test"
fi