Files
251208-biz-m-px/boot/install.sh
Wang Sen Di 9764b5f968 -
2025-12-09 11:55:44 +08:00

85 lines
2.1 KiB
Bash

#!/usr/bin/env bash
# shellcheck disable=SC2317,SC2086
# Admin https://www.yuque.com/wangsendi
__main() {
{
# 判断是否有 docker 和 docker-compose
if ! command -v docker >/dev/null 2>&1; then
echo "docker not installed"
return 1
fi
if [[ "$(docker compose version 2>/dev/null | grep version -c)" != "1" ]]; then
echo "docker compose not installed"
return 1
fi
}
{
# 镜像准备
_image1="1181.s.kuaicdn.cn:11818/ghcr.io/wangsendi/gitrce:bbiz-t2507281"
_image2="$(echo "$_image1" | awk -F '/' '{print $NF}')"
if [[ "$(docker images "$_image2" | wc -l)" != "2" ]]; then
docker pull $_image1 && docker tag "$_image1" "$_image2"
fi
}
{
_gre_remote_repo="https://codeberg.org/umi-edge/250924-s-speedtest.git"
_container_name="250924-s-speedtest"
_apps_data="/data/umi/gitrce/$_container_name/master"
_compose_file="$_apps_data/boot/docker-compose.yaml"
mkdir -p ${_compose_file%/*}
cat >$_compose_file <<EOF
services:
master:
container_name: $_container_name
image: $_image2
restart: always
network_mode: host
privileged: true
security_opt:
- apparmor:unconfined
environment:
- GIT_REMOTE_REPO=$_gre_remote_repo
- APPS_DATA=$_apps_data
- CONTAINER_NAME=$_container_name
volumes:
- /dev:/host/dev:ro
- /sys:/host/sys:ro
- /proc:/host/proc:ro
- /run:/host/run:rw
- /etc:/host/etc:rw
- /data:/data:rw,rshared
- /disk:/disk:rw,rshared
- "$_apps_data/:/apps/data"
EOF
}
{
# run
docker ps -f name="[0-9a-z]{12}_$_container_name" -aq | xargs -r docker rm -f # 删除变种容器
_cmd="docker compose -p $_container_name -f $_compose_file up -d --remove-orphans"
if ! eval "$_cmd"; then
docker ps -f name=$_container_name -aq | xargs -r -I{} echo 'ps -ef | grep -v $$ | grep {}' | sh | awk '{print $2}' | xargs -r -I{} kill -9 {}
docker rm -f $_container_name
eval "$_cmd"
fi
}
}
__main
__help() {
cat >/dev/null <<-'AEOF'
bash <(curl -fsSL https://codeberg.org/umi-edge/250924-s-speedtest/raw/branch/main/boot/install.sh)
AEOF
}