forked from Gitlink/microservices
248 lines
8.9 KiB
Bash
Executable File
248 lines
8.9 KiB
Bash
Executable File
#!/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
|
||
|