microservices/docker-gitlink/build.sh

248 lines
8.9 KiB
Bash
Executable File
Raw Permalink 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/sh
# 获取当前路径
orgin_path=`pwd`
server_name=$3
env=$1
# 使用说明,用来提示输入参数
usage() {
echo -e "\e[91m错误必须传入环境和方法两个参数 \e[0m"
echo "Usage: sh build.sh [test|prod] [build_base_image|gen_nacos_config|gen_nginx_config|gen_nacos_sql|gen_gitlink_sql|gen_docker_compose|gen_dockerfile|build_maven|build_zone_front]"
exit 1
}
# 编译基础镜像
build_base_image(){
cd "${orgin_path}"/gitlink/base
docker build -t gitlink-java:"${base_image_version}" .
}
gen_nginx_config(){
# 修改nacos配置
cd "${orgin_path}"/nginx/conf
# 删除历史配置文件
rm -f nginx.conf
cp default_nginx.conf nginx.conf
# 替换配置
sed -i "s|#mapping_gateway_port|${mapping_gateway_port}|g" nginx.conf
sed -i "s|#mapping_nacos_port|${mapping_nacos_port}|g" nginx.conf
}
gen_nacos_sql(){
# 修改nacos SQL
cd "${orgin_path}"/nacos/sql
# 删除历史sql
rm -f gitlink-nacos-config.sql
cp default_gitlink-nacos-config.sql gitlink-nacos-config.sql
# 替换配置
sed -i "s|#redis_ip|${redis_ip}|g" gitlink-nacos-config.sql
sed -i "s|#redis_port|${redis_port}|g" gitlink-nacos-config.sql
sed -i "s|#db_url|${db_url}|g" gitlink-nacos-config.sql
sed -i "s|#db_name|${db_name}|g" gitlink-nacos-config.sql
sed -i "s|#db_username|${db_username}|g" gitlink-nacos-config.sql
sed -i "s|#db_password|${db_password}|g" gitlink-nacos-config.sql
sed -i "s|#gitlink_db_url|${gitlink_db_url}|g" gitlink-nacos-config.sql
sed -i "s|#gitlink_db_name|${gitlink_db_name}|g" gitlink-nacos-config.sql
sed -i "s|#gitlink_db_username|${gitlink_db_username}|g" gitlink-nacos-config.sql
sed -i "s|#gitlink_db_password|${gitlink_db_password}|g" gitlink-nacos-config.sql
sed -i "s|#file_url|${file_url}|g" gitlink-nacos-config.sql
sed -i "s|#file_path|${file_path}|g" gitlink-nacos-config.sql
sed -i "s|#cms_summaryMaxLength|${cms_summaryMaxLength}|g" gitlink-nacos-config.sql
sed -i "s|#cms_gitLinkOrganization|${cms_gitLinkOrganization}|g" gitlink-nacos-config.sql
sed -i "s|#cms_gitLinkUrl|${cms_gitLinkUrl}|g" gitlink-nacos-config.sql
sed -i "s|#cmsDetailPath|${cmsDetailPath}|g" gitlink-nacos-config.sql
sed -i "s|#invitationLinkExpirationTime|${invitationLinkExpirationTime}|g" gitlink-nacos-config.sql
sed -i "s|#invitationPagePath|${invitationPagePath}|g" gitlink-nacos-config.sql
sed -i "s|#messageTemplate|${messageTemplate}|g" gitlink-nacos-config.sql
sed -i "s|#memberMessageTemplate|${memberMessageTemplate}|g" gitlink-nacos-config.sql
sed -i "s|#zoneAdminUrl|${zoneAdminUrl}|g" gitlink-nacos-config.sql
sed -i "s|#zoneHomepagePath|${zoneHomepagePath}|g" gitlink-nacos-config.sql
sed -i "s|#zoneMemberPath|${zoneMemberPath}|g" gitlink-nacos-config.sql
sed -i "s|#zoneConfigurationUrl|${zoneConfigurationUrl}|g" gitlink-nacos-config.sql
sed -i "s|#docManageUrl|${docManageUrl}|g" gitlink-nacos-config.sql
sed -i "s|#resourceManageUrl|${resourceManageUrl}|g" gitlink-nacos-config.sql
sed -i "s|#gitlinkProjectId|${gitlinkProjectId}|g" gitlink-nacos-config.sql
sed -i "s|#gitLinkUserName1|${gitLinkUserName1}|g" gitlink-nacos-config.sql
sed -i "s|#gitLinkUserName2|${gitLinkUserName2}|g" gitlink-nacos-config.sql
sed -i "s|#gitLinkUserName3|${gitLinkUserName3}|g" gitlink-nacos-config.sql
sed -i "s|#gitLinkUserName4|${gitLinkUserName4}|g" gitlink-nacos-config.sql
sed -i "s|#gatewayUrl|${gatewayUrl}|g" gitlink-nacos-config.sql
sed -i "s|#gitlinkAdminUsername|${gitlinkAdminUsername}|g" gitlink-nacos-config.sql
sed -i "s|#gitlinkAdminPassword|${gitlinkAdminPassword}|g" gitlink-nacos-config.sql
sed -i "s|#gitlinkClientId|${gitlinkClientId}|g" gitlink-nacos-config.sql
sed -i "s|#gitlinkClientSecret|${gitlinkClientSecret}|g" gitlink-nacos-config.sql
sed -i "1 i DROP DATABASE IF EXISTS \`${nacos_db_name}\`;" gitlink-nacos-config.sql
sed -i "2 i CREATE DATABASE \`${nacos_db_name}\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;" gitlink-nacos-config.sql
sed -i "3 i USE \`${nacos_db_name}\`;" gitlink-nacos-config.sql
}
gen_gitlink_sql(){
# 修改nacos SQL
cd "${orgin_path}"/gitlink/sql
# 删除历史sql
rm -f ruoyi-gitlink.sql
cp init-ruoyi-gitlink.sql ruoyi-gitlink.sql
# 替换配置
sed -i "1 i DROP DATABASE IF EXISTS \`${db_name}\`;" ruoyi-gitlink.sql
sed -i "2 i CREATE DATABASE \`${db_name}\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;" ruoyi-gitlink.sql
sed -i "3 i USE \`${db_name}\`;" ruoyi-gitlink.sql
}
gen_docker_compose(){
# 替换docker-compose配置
cd "${orgin_path}"
# 删除历史docker-compose
rm -f docker-compose.yml
cp default_docker-compose.yml docker-compose.yml
sed -i "s|#docker_data|${docker_data}|g" docker-compose.yml
sed -i "s|#file_path|${file_path}|g" docker-compose.yml
sed -i "s|#mapping_nacos_port|${mapping_nacos_port}|g" docker-compose.yml
sed -i "s|#mapping_redis_port|${mapping_redis_port}|g" docker-compose.yml
sed -i "s|#mapping_gateway_port|${mapping_gateway_port}|g" docker-compose.yml
sed -i "s|#db_password|${db_password}|g" docker-compose.yml
sed -i "s|#db_name|${db_name}|g" docker-compose.yml
sed -i "s|#mapping_mysql_port|${mapping_mysql_port}|g" docker-compose.yml
# Nacos配置
sed -i "s|#NACOS_MYSQL_SERVICE_HOST|${NACOS_MYSQL_SERVICE_HOST}|g" docker-compose.yml
sed -i "s|#NACOS_SPRING_DATASOURCE_PLATFORM|${NACOS_SPRING_DATASOURCE_PLATFORM}|g" docker-compose.yml
sed -i "s|#NACOS_MYSQL_SERVICE_PORT|${NACOS_MYSQL_SERVICE_PORT}|g" docker-compose.yml
sed -i "s|#NACOS_MYSQL_SERVICE_DB_NAME|${NACOS_MYSQL_SERVICE_DB_NAME}|g" docker-compose.yml
sed -i "s|#NACOS_MYSQL_SERVICE_USER|${NACOS_MYSQL_SERVICE_USER}|g" docker-compose.yml
sed -i "s|#NACOS_MYSQL_SERVICE_PASSWORD|${NACOS_MYSQL_SERVICE_PASSWORD}|g" docker-compose.yml
sed -i "s|#NACOS_AUTH_ENABLE|${NACOS_AUTH_ENABLE}|g" docker-compose.yml
sed -i "s|#NACOS_AUTH_TOKEN|${NACOS_AUTH_TOKEN}|g" docker-compose.yml
sed -i "s|#NACOS_AUTH_IDENTITY_KEY|${NACOS_AUTH_IDENTITY_KEY}|g" docker-compose.yml
sed -i "s|#NACOS_AUTH_IDENTITY_VALUE|${NACOS_AUTH_IDENTITY_VALUE}|g" docker-compose.yml
}
gen_dockerfile(){
# 替换auth dockerfile配置
cd "${orgin_path}"/gitlink/auth
replace_dockerfile_config
# 替换gateway dockerfile配置
cd "${orgin_path}"/gitlink/gateway
replace_dockerfile_config
# 替换cms dockerfile配置
cd "${orgin_path}"/gitlink/modules/cms
replace_dockerfile_config
# 替换zone dockerfile配置
cd "${orgin_path}"/gitlink/modules/zone
replace_dockerfile_config
# 替换file dockerfile配置
cd "${orgin_path}"/gitlink/modules/file
replace_dockerfile_config
# 替换job dockerfile配置
cd "${orgin_path}"/gitlink/modules/job
replace_dockerfile_config
# 替换system dockerfile配置
cd "${orgin_path}"/gitlink/modules/system
replace_dockerfile_config
}
replace_dockerfile_config(){
# 删除历史docker-compose
rm -f dockerfile
cp default_dockerfile dockerfile
sed -i "s|#skywalking_backend_service|${skywalking_backend_service}|g" dockerfile
sed -i "s|#nacos_ip|${nacos_ip}|g" dockerfile
sed -i "s|#nacos_port|${nacos_port}|g" dockerfile
sed -i "s|#nacos_username|${nacos_username}|g" dockerfile
sed -i "s|#nacos_password|${nacos_password}|g" dockerfile
sed -i "s|#base_image_version|${base_image_version}|g" dockerfile
sed -i "s|#deploy_env|${deploy_env}|g" dockerfile
sed -i "s|#nacos_username|${nacos_username}|g" dockerfile
sed -i "s|#nacos_password|${nacos_password}|g" dockerfile
}
# 微服务模块编译
build_maven(){
cd "${orgin_path}"/..
if [ -z "$server_name" ]; then
mvn clean
mvn package install -DskipTests
else
mvn clean install -pl "$server_name" -am
fi
}
# 微服务模块编译
build_zone_front(){
cd "${orgin_path}"/..
#判断前端项目文件夹是否已创建
if [ ! -d "ruoyi-react" ]; then
git clone git@code.gitlink.org.cn:Gitlink/ruoyi-react.git
fi
cd ./ruoyi-react
if [ "$env" = 'test' ]; then
echo "切换到develop分支"
git checkout develop
git branch --set-upstream-to=origin/develop develop
else
echo "切换到master分支"
git checkout master
fi
git pull
npm config set registry https://registry.npmmirror.com
npm install
npm run build
}
case "$env" in
"test")
# 获取测试环境配置文件中的安装信息
. ./test_config.profile
;;
"prod")
. ./prod_config.profile
;;
*)
usage
;;
esac
# 根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$2" in
"build_base_image")
build_base_image
;;
"gen_gitlink_sql")
gen_gitlink_sql
;;
"gen_nacos_sql")
gen_nacos_sql
;;
"gen_nginx_config")
gen_nginx_config
;;
"gen_docker_compose")
gen_docker_compose
;;
"gen_dockerfile")
gen_dockerfile
;;
"build_maven")
build_maven
;;
"build_zone_front")
build_zone_front
;;
"test")
test1
;;
*)
usage
;;
esac