From dafbf5bad416a0f22c4971f79a546f9916c94550 Mon Sep 17 00:00:00 2001 From: NotBigGhost Date: Mon, 14 Sep 2026 20:48:30 +0300 Subject: [PATCH] =?UTF-8?q?=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20test-=D0=BA=D0=BE=D0=BD=D1=82=D1=83=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.test.yml | 86 ----------------------------------------- scripts/export-test.sh | 18 --------- 2 files changed, 104 deletions(-) delete mode 100644 docker-compose.test.yml delete mode 100644 scripts/export-test.sh diff --git a/docker-compose.test.yml b/docker-compose.test.yml deleted file mode 100644 index 2c96d6b..0000000 --- a/docker-compose.test.yml +++ /dev/null @@ -1,86 +0,0 @@ -# Локальный «клон прода» в контейнере — для проверки прод-сборки на своей машине -# (а не на Raspberry Pi). Тот же образ, что и прод, изолированные тома, единый .env. -# Портов на хост НЕТ: тест виден ТОЛЬКО снаружи на https://forbidden-stars.ru через -# сервис tunnel (контейнер ssh -R 9001:app:8000 на VPS). -# -# Запуск (обычно лаунчером при APP_ENV=test): docker compose -f docker-compose.test.yml up --build -d -# Остановить и стереть данные: docker compose -f docker-compose.test.yml down -v -services: - app: - build: . - image: forbidden-stars:test - container_name: forbidden-stars-test - restart: "no" - init: true - env_file: - - .env # единый .env (тот же, что у dev/prod); секреты не в git - environment: - # Окружение test: прод-клон, но отличимый от прода (см. config.is_test). - # Форсим здесь, чтобы значение не зависело от APP_ENV внутри .env. - APP_ENV: test - # Портов на хост НЕТ: тест доступен только изнутри сети compose; наружу — через - # сервис tunnel (ниже) на forbidden-stars.ru. Из LAN/localhost — недоступно. - volumes: - - db-data-test:/data # изолированные тестовые данные - - uploads-data-test:/data/uploads - - achievements-data-test:/data/achievements # определения ачивок (файлы) - healthcheck: - test: - - CMD - - python - - -c - - "import urllib.request; urllib.request.urlopen('http://localhost:8000/api/health')" - interval: 30s - timeout: 5s - retries: 3 - start_period: 40s - mem_limit: 512m - - # SSH reverse-туннель к VPS: forbidden-stars.ru (VPS:9001) -> app:8000 (по сети compose). - # Ключ — ./deploy/tunnel/id_tunnel (gitignore), pubkey в authorized_keys у tunnel@VPS. - # Внимание: слот 9001 общий с dev-туннелем (run.ps1); поднимай что-то одно за раз. - tunnel: - build: ./deploy/tunnel - image: forbidden-stars-tunnel:test - restart: unless-stopped - init: true - depends_on: - app: - condition: service_healthy - environment: - VPS_TUNNEL_HOST: ${VPS_TUNNEL_HOST} - VPS_TUNNEL_USER: ${VPS_TUNNEL_USER:-tunnel} - VPS_TUNNEL_PORT: "9001" # forbidden-stars.ru (dev/test) - UPSTREAM: app:8000 - volumes: - - ./deploy/tunnel/id_tunnel:/key/id_tunnel:ro - mem_limit: 64m - - # Бэкапы тест-клона: тот же образ, что у прода (сборка локально), но ТОЛЬКО локальный - # репозиторий и без расписания. BACKUP_VPS_HOST принудительно пуст — тестовые данные - # никогда не попадут в прод-репозиторий на VPS. Учебное восстановление: - # .\scripts\fs-backup.ps1 restore-test -File backups\fs_....tar - backup: - build: ./deploy/backup - image: forbidden-stars-backup:test - restart: "no" - environment: - BACKUP_PASSWORD: ${BACKUP_PASSWORD:-test-contour-only} - BACKUP_HOSTNAME: fs-test - BACKUP_SCHEDULE: "" - BACKUP_VERIFY_SCHEDULE: "" - BACKUP_VPS_HOST: "" - BACKUP_COMPRESSION: ${BACKUP_COMPRESSION:-max} - TZ: ${BACKUP_TZ:-Europe/Moscow} - volumes: - - db-data-test:/fs-db - - uploads-data-test:/fs/uploads - - achievements-data-test:/fs/achievements - - backup-data-test:/backup - mem_limit: 384m - -volumes: - db-data-test: - uploads-data-test: - achievements-data-test: - backup-data-test: diff --git a/scripts/export-test.sh b/scripts/export-test.sh deleted file mode 100644 index 71a90c0..0000000 --- a/scripts/export-test.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash -# Выгрузка ТЕСТА (прод-клон для локального контейнера на x86): в целевую папку -# попадают только файлы, нужные для запуска тест-контейнера. -# -# Использование: scripts/export-test.sh <целевая-папка> [git-ref] -set -euo pipefail - -DEST="${1:?Укажите целевую папку: scripts/export-test.sh [ref]}" -REF="${2:-HEAD}" - -mkdir -p "$DEST" -git archive --format=tar "$REF" | tar -x -C "$DEST" - -# прод-compose в тест-папке не нужен (тест запускается своим docker-compose.test.yml) -rm -f "$DEST/docker-compose.yml" - -echo "[export-test] Тест выгружен в: $DEST" -echo " дальше: cp .env.example .env (APP_ENV=test) && docker compose -f docker-compose.test.yml up -d --build"