update sh
This commit is contained in:
parent
2b9fbb6c7d
commit
769e54b8b2
|
|
@ -121,6 +121,7 @@ services:
|
||||||
build:
|
build:
|
||||||
context: ./modules/web2-client
|
context: ./modules/web2-client
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
|
profiles: ["main-node"] # Only build for main nodes
|
||||||
container_name: my-web2-client
|
container_name: my-web2-client
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
|
|
|
||||||
|
|
@ -823,9 +823,31 @@ if ! check_and_skip "docker_build" "Сборка и запуск"; then
|
||||||
|
|
||||||
log "Используется $COMPOSE_FILE"
|
log "Используется $COMPOSE_FILE"
|
||||||
|
|
||||||
# Сборка образов от имени пользователя сервиса
|
# Сборка образов от имени пользователя сервиса с учетом типа ноды
|
||||||
log "Сборка основного приложения..."
|
log "Сборка приложения для типа ноды: $NODE_TYPE..."
|
||||||
|
|
||||||
|
if [ "$NODE_TYPE" = "main" ]; then
|
||||||
|
# Для основной ноды пытаемся собрать с профилем main-node (включая web2-client)
|
||||||
|
if [ "$COMPOSE_FILE" = "docker-compose.production.yml" ]; then
|
||||||
|
if sudo -u "$SERVICE_USER" docker-compose -f "$COMPOSE_FILE" --profile main-node build 2>/dev/null; then
|
||||||
|
log_success "Сборка основной ноды (с web2-client) завершена"
|
||||||
|
else
|
||||||
|
log_warning "Сборка с web2-client не удалась, собираем без него..."
|
||||||
|
sudo -u "$SERVICE_USER" docker-compose -f "$COMPOSE_FILE" build app postgres redis converter 2>/dev/null || \
|
||||||
|
sudo -u "$SERVICE_USER" docker-compose -f "$COMPOSE_FILE" build app postgres redis
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Для обычного docker-compose.yml собираем все доступные сервисы
|
||||||
sudo -u "$SERVICE_USER" docker-compose -f "$COMPOSE_FILE" build
|
sudo -u "$SERVICE_USER" docker-compose -f "$COMPOSE_FILE" build
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Для обычной ноды собираем только основные сервисы
|
||||||
|
if [ "$COMPOSE_FILE" = "docker-compose.production.yml" ]; then
|
||||||
|
sudo -u "$SERVICE_USER" docker-compose -f "$COMPOSE_FILE" build app postgres redis converter
|
||||||
|
else
|
||||||
|
sudo -u "$SERVICE_USER" docker-compose -f "$COMPOSE_FILE" build app postgres redis indexer ton_daemon license_index convert_process
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Сборка converter image (если есть профиль build-only)
|
# Сборка converter image (если есть профиль build-only)
|
||||||
log "Сборка converter image..."
|
log "Сборка converter image..."
|
||||||
|
|
@ -835,15 +857,21 @@ if ! check_and_skip "docker_build" "Сборка и запуск"; then
|
||||||
|
|
||||||
log "Запуск приложения..."
|
log "Запуск приложения..."
|
||||||
if [ "$NODE_TYPE" = "main" ]; then
|
if [ "$NODE_TYPE" = "main" ]; then
|
||||||
# Для основной ноды запускаем все сервисы включая web2-client
|
# Для основной ноды пытаемся запустить с профилем main-node
|
||||||
if [ "$COMPOSE_FILE" = "docker-compose.production.yml" ]; then
|
if [ "$COMPOSE_FILE" = "docker-compose.production.yml" ]; then
|
||||||
sudo -u "$SERVICE_USER" docker-compose -f "$COMPOSE_FILE" up -d app postgres redis web2-client nginx prometheus grafana loki promtail
|
if sudo -u "$SERVICE_USER" docker-compose -f "$COMPOSE_FILE" --profile main-node up -d 2>/dev/null; then
|
||||||
|
log "🚀 Запущены все сервисы основной ноды (включая web2-client)"
|
||||||
|
else
|
||||||
|
log_warning "Запуск с web2-client не удался, запускаем основные сервисы..."
|
||||||
|
sudo -u "$SERVICE_USER" docker-compose -f "$COMPOSE_FILE" up -d app postgres redis
|
||||||
|
log "🚀 Запущены основные сервисы (web2-client пропущен)"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
sudo -u "$SERVICE_USER" docker-compose -f "$COMPOSE_FILE" up -d
|
sudo -u "$SERVICE_USER" docker-compose -f "$COMPOSE_FILE" up -d
|
||||||
|
log "🚀 Запущены все доступные сервисы для основной ноды"
|
||||||
fi
|
fi
|
||||||
log "🚀 Запущены все сервисы для основной ноды"
|
|
||||||
else
|
else
|
||||||
# Для обычной ноды запускаем только основные сервисы без web2-client
|
# Для обычной ноды запускаем только основные сервисы
|
||||||
if [ "$COMPOSE_FILE" = "docker-compose.production.yml" ]; then
|
if [ "$COMPOSE_FILE" = "docker-compose.production.yml" ]; then
|
||||||
sudo -u "$SERVICE_USER" docker-compose -f "$COMPOSE_FILE" up -d app postgres redis
|
sudo -u "$SERVICE_USER" docker-compose -f "$COMPOSE_FILE" up -d app postgres redis
|
||||||
else
|
else
|
||||||
|
|
@ -911,11 +939,20 @@ if ! check_and_skip "final_check" "Финальная проверка"; then
|
||||||
cat > "$MAIN_PROJECT_DIR/start.sh" << EOF
|
cat > "$MAIN_PROJECT_DIR/start.sh" << EOF
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
cd $MAIN_PROJECT_DIR
|
cd $MAIN_PROJECT_DIR
|
||||||
|
echo "🚀 Запуск MY Uploader Bot (тип ноды: $NODE_TYPE)..."
|
||||||
if [ "$NODE_TYPE" = "main" ]; then
|
if [ "$NODE_TYPE" = "main" ]; then
|
||||||
if [ "$COMPOSE_FILE" = "docker-compose.production.yml" ]; then
|
if [ "$COMPOSE_FILE" = "docker-compose.production.yml" ]; then
|
||||||
docker-compose -f $COMPOSE_FILE up -d app postgres redis web2-client nginx prometheus grafana loki promtail
|
# Пытаемся запустить с профилем main-node (включая web2-client)
|
||||||
|
if docker-compose -f $COMPOSE_FILE --profile main-node up -d 2>/dev/null; then
|
||||||
|
echo "✅ Запущены все сервисы основной ноды (включая web2-client)"
|
||||||
|
else
|
||||||
|
echo "⚠️ Web2-client недоступен, запускаем основные сервисы..."
|
||||||
|
docker-compose -f $COMPOSE_FILE up -d app postgres redis
|
||||||
|
echo "✅ Запущены основные сервисы (web2-client пропущен)"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
docker-compose -f $COMPOSE_FILE up -d
|
docker-compose -f $COMPOSE_FILE up -d
|
||||||
|
echo "✅ Запущены все доступные сервисы для основной ноды"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if [ "$COMPOSE_FILE" = "docker-compose.production.yml" ]; then
|
if [ "$COMPOSE_FILE" = "docker-compose.production.yml" ]; then
|
||||||
|
|
@ -923,8 +960,10 @@ else
|
||||||
else
|
else
|
||||||
docker-compose -f $COMPOSE_FILE up -d app postgres redis indexer ton_daemon license_index convert_process
|
docker-compose -f $COMPOSE_FILE up -d app postgres redis indexer ton_daemon license_index convert_process
|
||||||
fi
|
fi
|
||||||
|
echo "✅ Запущены основные сервисы для обычной ноды"
|
||||||
fi
|
fi
|
||||||
echo "✅ MY Uploader Bot запущен (тип ноды: $NODE_TYPE)"
|
echo ""
|
||||||
|
echo "📊 Статус контейнеров:"
|
||||||
docker-compose -f $COMPOSE_FILE ps
|
docker-compose -f $COMPOSE_FILE ps
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|
@ -966,12 +1005,41 @@ EOF
|
||||||
cat > "$MAIN_PROJECT_DIR/rebuild.sh" << EOF
|
cat > "$MAIN_PROJECT_DIR/rebuild.sh" << EOF
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
cd $MAIN_PROJECT_DIR
|
cd $MAIN_PROJECT_DIR
|
||||||
echo "🔄 Пересборка и перезапуск..."
|
echo "🔄 Остановка сервисов..."
|
||||||
docker-compose -f $COMPOSE_FILE down
|
docker-compose -f $COMPOSE_FILE down
|
||||||
docker-compose -f $COMPOSE_FILE build
|
|
||||||
|
echo "🔧 Пересборка образов для типа ноды: $NODE_TYPE..."
|
||||||
if [ "$NODE_TYPE" = "main" ]; then
|
if [ "$NODE_TYPE" = "main" ]; then
|
||||||
if [ "$COMPOSE_FILE" = "docker-compose.production.yml" ]; then
|
if [ "$COMPOSE_FILE" = "docker-compose.production.yml" ]; then
|
||||||
docker-compose -f $COMPOSE_FILE up -d app postgres redis web2-client nginx prometheus grafana loki promtail
|
# Пытаемся собрать с профилем main-node
|
||||||
|
if docker-compose -f $COMPOSE_FILE --profile main-node build 2>/dev/null; then
|
||||||
|
echo "✅ Сборка основной ноды (с web2-client) завершена"
|
||||||
|
else
|
||||||
|
echo "⚠️ Сборка с web2-client не удалась, собираем основные сервисы..."
|
||||||
|
docker-compose -f $COMPOSE_FILE build app postgres redis converter 2>/dev/null || \
|
||||||
|
docker-compose -f $COMPOSE_FILE build app postgres redis
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
docker-compose -f $COMPOSE_FILE build
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ "$COMPOSE_FILE" = "docker-compose.production.yml" ]; then
|
||||||
|
docker-compose -f $COMPOSE_FILE build app postgres redis converter
|
||||||
|
else
|
||||||
|
docker-compose -f $COMPOSE_FILE build app postgres redis indexer ton_daemon license_index convert_process
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "🚀 Запуск сервисов..."
|
||||||
|
if [ "$NODE_TYPE" = "main" ]; then
|
||||||
|
if [ "$COMPOSE_FILE" = "docker-compose.production.yml" ]; then
|
||||||
|
if docker-compose -f $COMPOSE_FILE --profile main-node up -d 2>/dev/null; then
|
||||||
|
echo "✅ Запущены все сервисы основной ноды (включая web2-client)"
|
||||||
|
else
|
||||||
|
echo "⚠️ Web2-client недоступен, запускаем основные сервисы..."
|
||||||
|
docker-compose -f $COMPOSE_FILE up -d app postgres redis
|
||||||
|
echo "✅ Запущены основные сервисы (web2-client пропущен)"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
docker-compose -f $COMPOSE_FILE up -d
|
docker-compose -f $COMPOSE_FILE up -d
|
||||||
fi
|
fi
|
||||||
|
|
@ -982,7 +1050,9 @@ else
|
||||||
docker-compose -f $COMPOSE_FILE up -d app postgres redis indexer ton_daemon license_index convert_process
|
docker-compose -f $COMPOSE_FILE up -d app postgres redis indexer ton_daemon license_index convert_process
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
echo "✅ Пересборка завершена"
|
echo "✅ Пересборка и перезапуск завершены"
|
||||||
|
echo ""
|
||||||
|
echo "📊 Статус контейнеров:"
|
||||||
docker-compose -f $COMPOSE_FILE ps
|
docker-compose -f $COMPOSE_FILE ps
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|
@ -992,22 +1062,41 @@ EOF
|
||||||
# Настройка автозапуска
|
# Настройка автозапуска
|
||||||
log "Настройка автозапуска..."
|
log "Настройка автозапуска..."
|
||||||
|
|
||||||
|
# Создаем обертку скрипта для systemd service (учитывает профили Docker Compose)
|
||||||
|
cat > "$MAIN_PROJECT_DIR/systemd_start.sh" << EOF
|
||||||
|
#!/bin/bash
|
||||||
|
cd $MAIN_PROJECT_DIR
|
||||||
if [ "$NODE_TYPE" = "main" ]; then
|
if [ "$NODE_TYPE" = "main" ]; then
|
||||||
if [ "$COMPOSE_FILE" = "docker-compose.production.yml" ]; then
|
if [ "$COMPOSE_FILE" = "docker-compose.production.yml" ]; then
|
||||||
SERVICE_EXEC_START="/usr/local/bin/docker-compose -f $COMPOSE_FILE up -d app postgres redis web2-client nginx prometheus grafana loki promtail"
|
# Пытаемся запустить с профилем main-node
|
||||||
|
if docker-compose -f $COMPOSE_FILE --profile main-node up -d 2>/dev/null; then
|
||||||
|
echo "✅ Запущены все сервисы основной ноды (включая web2-client)"
|
||||||
else
|
else
|
||||||
SERVICE_EXEC_START="/usr/local/bin/docker-compose -f $COMPOSE_FILE up -d"
|
echo "⚠️ Web2-client недоступен, запускаем основные сервисы..."
|
||||||
|
docker-compose -f $COMPOSE_FILE up -d app postgres redis
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
docker-compose -f $COMPOSE_FILE up -d
|
||||||
fi
|
fi
|
||||||
SERVICE_DESCRIPTION="MY Uploader Bot (Main Node)"
|
|
||||||
else
|
else
|
||||||
if [ "$COMPOSE_FILE" = "docker-compose.production.yml" ]; then
|
if [ "$COMPOSE_FILE" = "docker-compose.production.yml" ]; then
|
||||||
SERVICE_EXEC_START="/usr/local/bin/docker-compose -f $COMPOSE_FILE up -d app postgres redis"
|
docker-compose -f $COMPOSE_FILE up -d app postgres redis
|
||||||
else
|
else
|
||||||
SERVICE_EXEC_START="/usr/local/bin/docker-compose -f $COMPOSE_FILE up -d app postgres redis indexer ton_daemon license_index convert_process"
|
docker-compose -f $COMPOSE_FILE up -d app postgres redis indexer ton_daemon license_index convert_process
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
EOF
|
||||||
|
chmod +x "$MAIN_PROJECT_DIR/systemd_start.sh"
|
||||||
|
chown "$SERVICE_USER:$SERVICE_USER" "$MAIN_PROJECT_DIR/systemd_start.sh"
|
||||||
|
|
||||||
|
if [ "$NODE_TYPE" = "main" ]; then
|
||||||
|
SERVICE_DESCRIPTION="MY Uploader Bot (Main Node)"
|
||||||
|
else
|
||||||
SERVICE_DESCRIPTION="MY Uploader Bot (Regular Node)"
|
SERVICE_DESCRIPTION="MY Uploader Bot (Regular Node)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
SERVICE_EXEC_START="$MAIN_PROJECT_DIR/systemd_start.sh"
|
||||||
|
|
||||||
cat > /etc/systemd/system/my-uploader-bot.service << EOF
|
cat > /etc/systemd/system/my-uploader-bot.service << EOF
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=$SERVICE_DESCRIPTION
|
Description=$SERVICE_DESCRIPTION
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue