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