forgeplus-deploy/setup.sh

115 lines
4.0 KiB
Bash
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/bash
echo "开始检查安装文件..."
# 定义应用名称
app_name="gitlink"
# 定义要搜索的字符串,初始不用改
search_string="172.20.32.202"
# 定义要替换的新字符串
replace_string="172.20.32.135"
echo "检查代码目录路径是否存在..."
# 检查代码目录路径是否存在
if [ ! -d "02-forgeplus/forgeplus" ]; then
echo "代码目录路径不存在02-forgeplus/forgeplus"
# exit 1
echo "正在克隆代码到02-forgeplus/forgeplus"
git clone -b dev_local_v1 --depth 1 https://gitlink.org.cn/Trustie/forgeplus.git 02-forgeplus/forgeplus
sleep 2
rm -rf 02-forgeplus/forgeplus/public/react/build
echo "正在克隆代码到02-forgeplus/forgeplus/public/react/build"
git clone -b dev_local_v1 --depth 1 https://gitlink.org.cn/gitlink/build.git 02-forgeplus/forgeplus/public/react/build
fi
echo "检查代码库运行文件是否存在..."
# 检查代码库运行文件是否存在
if [ ! -f "01-gitea/gitea_hat" ]; then
echo "检查代码库运行文件不存在01-gitea/gitea_hat"
exit 1
fi
echo "检查GEM文件是否存在..."
# 检查GEM文件是否存在
gem_zip_file=$(find 02-forgeplus -type f -name "bundle*.zip")
if [ ! -f "$gem_zip_file" ]; then
echo "GEM文件不存在02-forgeplus/bundle*.zip"
exit 1
fi
echo "初始化运行/data目录,并拷贝文件..."
mkdir -p /data/
mkdir -p /data/$app_name/
# 检查安装目录是否存在
if [ ! -d "/data/$app_name/packages/" ]; then
mkdir -p /data/$app_name/packages
fi
chmod +x 01-gitea/gitea_hat
chmod +x -R 02-forgeplus/bundle
chmod +x -R 02-forgeplus/forgeplus/bin
cp -rf ./* /data/$app_name/packages/
mkdir -p /data/$app_name/packages/02-forgeplus/forgeplus/tmp/pids/
if which unzip >/dev/null 2>&1; then
unzip "$gem_zip_file" -d /data/$app_name/packages/02-forgeplus/
else
echo "未安装unzip"
exit 1
fi
echo "初始化运行配置文件..."
cp -rf .env /data/$app_name/packages/
cp -rf docker-compose.yml /data/$app_name/packages/
cp -rf 02-forgeplus/Gemfile.lock /data/$app_name/packages/02-forgeplus/forgeplus/
cp -rf 02-forgeplus/config/* /data/$app_name/packages/02-forgeplus/forgeplus/config/
# 搜索并替换文件夹中所有文件的ip配置为新的部署ip配置
cd /data/$app_name/packages/
echo "开始搜索并替换文件夹中的ip配置$search_string为新的部署ip配置$replace_string..."
# find "/data/$app_name/packages/" -type f -exec sed -i "s/$search_string/$replace_string/g" {} +
sed -i "s/$search_string/$replace_string/g" /data/$app_name/packages/00-db/mysql-init/02-init202-20240718154410.sql
sed -i "s/$search_string/$replace_string/g" /data/$app_name/packages/00-db/mysql-init/03-init-gitea-user.sql
sed -i "s/$search_string/$replace_string/g" /data/$app_name/packages/00-db/mysql-init/04-action.sql
sed -i "s/$search_string/$replace_string/g" /data/$app_name/packages/.env
sed -i "s/$search_string/$replace_string/g" /data/$app_name/packages/01-gitea/gitea/gitea/conf/app.ini
cp -rf 01-gitea/gitea /data/
sed -i "s/$search_string/$replace_string/g" /data/$app_name/packages/02-forgeplus/forgeplus/config/configuration.yml
sed -i "s/$search_string/$replace_string/g" /data/$app_name/packages/02-forgeplus/forgeplus/config/application.rb
echo "搜索并替换完成"
echo "导入镜像"
find /data/$app_name/packages/06-images/ -type f -name "*.tar" | xargs -I {} docker load -i {}
# ls /data/$app_name/packages/06-images/*.tar | xargs -I {} docker load -i {}
echo "启动服务..."
# 启动服务
if which docker-compose >/dev/null 2>&1; then
docker-compose -f docker-compose.yml up -d
else
# docker compose 启动服务
if command -v docker compose >/dev/null 2>&1; then
docker compose -f docker-compose.yml up -d
else
echo "未安装docker-compose"
exit 1
fi
fi
sleep 30
if [ "$(docker ps -f name=forgeplus -q -n 1)" ]; then
docker exec -it $(docker ps -f name=forgeplus -q -n 1) bundle exec rake db:migrate
else
echo "forgeplus容器启动失败。"
fi
echo "启动开源项目服务完成。"