115 lines
4.0 KiB
Bash
115 lines
4.0 KiB
Bash
#!/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 "启动开源项目服务完成。"
|
||
|
||
|