Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top

Вебинар: Go-Go-Gadg...Error? Смотрим, как ошибаются Go разработчики! - 26.08

>
>
Развёртывание в Docker Compose
menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

Развёртывание в Docker Compose

26 Авг 2026

Описание

PVS-Studio Atlas Server разворачивается в Docker Compose в контейнерах с 64-х битным Linux.

Пример конфигурационного файла docker-compose.yml:

services:
  database:
    image: postgres:18.2
    platform: linux/amd64
    container_name: atlas-database
    restart: unless-stopped
    shm_size: 1g
    environment:
      - TZ=Europe/Moscow
      - POSTGRES_DB=atlas
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=password
    volumes:
      - ./postgresql_data:/var/lib/postgresql
    ports:
      - 8081:5432
  dashboard:
    image: viva64/atlas-dashboard:latest
    platform: linux/amd64
    container_name: atlas-dashboard
    restart: unless-stopped
    shm_size: 1g
    depends_on:
      - database
    environment:
      - TZ=Europe/Moscow
      - "ATLAS_DB_CONNECTION_STRING=Server=database;Port=5432;\
           Username=postgres;Password=password;Database=atlas;\
           Timeout=300;CommandTimeout=300;"
      #- ATLAS_DB_CONNECTION_STRING_FILE=
      - "ATLAS_JWT_PRIVATE_TOKEN=DEMO_JWT_PRIVATE_TOKEN_\
          loH93fI6vNyL71M0bD6TmCTlZJa"
      #- ATLAS_JWT_PRIVATE_TOKEN_FILE=
      - ATLAS_SERVER_URL=http://localhost:8080
      #- ATLAS_SERVER_URL_FILE=
    volumes:
    # Хранение логов на локальном диске вне контейнера
      - ./dashboard_logs:/app/logs
    # Хранение ключей авторизации на локальном диске,
    # чтобы она не слетала при перезагрузке контейнера
      - ./dashboard_keys:/root/.aspnet/DataProtection-Keys
    # Хранение корневых сертификатов
      - ./dashboard_certs:/app/certs
    # Хранение отчётов .pvsmap
      - ./storage_data:/app/storage
    ports:
      - 8080:8080
  migrator:
    image: viva64/atlas-migrator:latest
    platform: linux/amd64
    container_name: atlas-migrator
    depends_on:
      - database
    environment:
      - "ATLAS_DB_CONNECTION_STRING=Server=database;Port=5432;\
          Username=postgres;Password=password;Database=atlas;\
          Timeout=300;CommandTimeout=300;"
      #- ATLAS_DB_CONNECTION_STRING_FILE=
    profiles:
      - manual

Сервис базы данных

Название: database.

Переменные окружения:

  • TZ — таймзона для хранения дат.
  • POSTGRES_DB — имя базы данных. По умолчанию: atlas.
  • POSTGRES_USER — имя суперпользователя базы данных. По умолчанию: postgres.
  • POSTGRES_PASSWORD – пароль суперпользователя базы данных. По умолчанию: password.

При первом запуске будет создана база данных с указанным именем и данными для входа.

Сервис для работы пользователей

Название: dashboard.

  • TZ — таймзона для хранения дат.
  • ATLAS_DB_CONNECTION_STRING — строка подключения в Key-Value формате.
  • ATLAS_JWT_PRIVATE_TOKEN — JWT токен.
  • ATLAS_SERVER_URL — адрес будущего сервера.

Загрузка и запуск образов Docker

Перейдите в каталог с конфигом docker-compose.yml и выполните команды:

docker compose --profile manual pull
docker compose up

Добавьте параметр -d для запуска сервера в режиме отключения от консоли:

docker compose up -d

В первый раз рекомендуется запускать сервисы с выводом в консоль, чтобы убедиться в отсутствии ошибок.

Перейдите по ссылке, указанной в ATLAS_SERVER_URL, и попробуйте залогиниться с помощью комбинации admin / admin. При успешном запуске и аутентификации продолжите настройку сервера.