microservices/docker-gitlink/build.sh

155 lines
4.4 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/sh
# 获取当前路径
orgin_path=`pwd`
# 使用说明,用来提示输入参数
usage() {
echo -e "\e[91m错误必须传入环境和方法两个参数 \e[0m"
echo "Usage: sh build.sh [test|prod] [build_base_image|gen_nacos_config|gen_nacos_sql|gen_docker_compose|gen_dockerfile|build_maven]"
exit 1
}
# 编译基础镜像
build_base_image(){
cd "${orgin_path}"/gitlink/base
docker build -t gitlink-java:"${base_image_version}" .
}
gen_nacos_config(){
# 修改nacos配置
cd "${orgin_path}"/nacos/conf
# 删除历史配置文件
rm -f application.properties
cp default_application.properties application.properties
# 替换配置
sed -i "s|#nacos_db_url|${nacos_db_url}|g" application.properties
sed -i "s|#nacos_db_name|${nacos_db_name}|g" application.properties
sed -i "s|#nacos_db_username|${nacos_db_username}|g" application.properties
sed -i "s|#nacos_db_password|${nacos_db_password}|g" application.properties
}
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
}
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
}
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
# 替换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|#base_image_version|${base_image_version}|g" dockerfile
sed -i "s|#deploy_env|${deploy_env}|g" dockerfile
}
# 微服务模块编译
build_maven(){
cd "${orgin_path}"/..
mvn clean
mvn package install -DskipTests
}
case "$1" in
"test")
# 获取测试环境配置文件中的安装信息
. ./test_config.profile
;;
"prod")
. ./prod_config.profile
;;
*)
usage
;;
esac
# 根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$2" in
"build_base_image")
build_base_image
;;
"gen_nacos_sql")
gen_nacos_sql
;;
"gen_nacos_config")
gen_nacos_config
;;
"gen_docker_compose")
gen_docker_compose
;;
"gen_dockerfile")
gen_dockerfile
;;
"build_maven")
build_maven
;;
"test")
test1
test2
;;
*)
usage
;;
esac