Задать вопрос
@svema0705

Почему при втором запуске self-hosted gitlab nginx ругается на порт?

Поставил себе gitlab ce для удобства хранения кода и доступа к нему с других устройств (например, с телефона зайти перед сном ещё раз посмотреть, что было в последнем коммите), ставил на свежеустановленную dietpi, которая в свою очередь работает на radxa pi с netbird vpn. Для гитлаба я также поставил postgres, но думаю он здесь не при чём. После нужно было обновить файл компостера, так как я забыл сделать сервисы бекапа бд, я остановил всё через docker compose down, добавил сервис бекапа и после запуска docker compose up -d пропал доступ к вебморде и в логи стало стабильно сыпать такой ошибкой:

gitlab            | ==> /var/log/gitlab/nginx/error.log <==
gitlab            | 2026/06/27 11:28:28 [emerg] 1795#0: invalid port in "*:" of the "listen" directive in /var/opt/gitlab/nginx/conf/service_conf/gitlab-registry.conf:14

Надо заметить, что гитлаб работал после первого запуска пару дней (озу была загружена на 60-70% и немного использовался своп), за которые я перенёс свои репозитории в него и спокойно мог подгружать их на другой компьютер - ошибка появилась уже при втором запуске. Что делать? Конфиг компостера:

networks:
  gitlab-network:
    driver: bridge

services:
  gitlab_db:
    image: postgres:17.10
    container_name: gitlab_db
    healthcheck:
      test: [ "CMD-SHELL", "pg_isready -U gitlab -d бд" ]
      interval: 30s
      timeout: 10s
      retries: 5
    restart: always
    environment:
      POSTGRES_USER: gitlab
      POSTGRES_PASSWORD: пароль
      POSTGRES_DB: бд
    volumes:
      - /mnt/sda/gitlab/db:/var/lib/postgresql/data:z
    networks:
      - gitlab-network

  redis:
    image: redis:7.0
    container_name: gitlab-redis
    restart: always
    volumes:
      - /mnt/sda/gitlab/redis/data:/data:z
    networks:
      - gitlab-network

  gitlab:
    image: gitlab/gitlab-ce:18.10.3-ce.0
    container_name: gitlab
    privileged: true
    restart: always
    hostname: 'http://gitlab.mysite.ru'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.mysite.ru'

        gitlab_rails['db_adapter'] = 'postgresql'
        gitlab_rails['db_encoding'] = 'unicode'
        gitlab_rails['db_host'] = 'gitlab_db'
        gitlab_rails['db_port'] = 5432
        gitlab_rails['db_database'] = 'бд'
        gitlab_rails['db_username'] = 'gitlab'
        gitlab_rails['db_password'] = 'пароль'

        gitlab_rails['redis_host'] = 'redis'
        gitlab_rails['redis_port'] = 6379

		#придушиваю некоторые модули чтобы хватало озу
        puma['worker_processes'] = 0
        sidekiq['max_concurrency'] = 8
        prometheus_monitoring['enable'] = true
        gitlab_pages['enable'] = false
        registry['enable'] = true
    ports:
      - "8080:80"
      - "8443:443"
      - "8022:22"
    volumes:
      - /mnt/sda/gitlab/gitlab/config:/etc/gitlab:z
      - /mnt/sda/gitlab/gitlab/logs:/var/log/gitlab:z
      - /mnt/sda/gitlab/gitlab/data:/var/opt/gitlab:z
    networks:
      - gitlab-network
    depends_on:
      - gitlab_db
      - redis

  db_backup:
    image: prodrigestivill/postgres-backup-local
    container_name: gitlab_db_backup
    restart: unless-stopped
    environment:
      POSTGRES_HOST: gitlab_db
      POSTGRES_USER: gitlab
      POSTGRES_PASSWORD: пароль
      POSTGRES_DB: бд
      SCHEDULE: "@daily"
      BACKUP_KEEP_DAYS: 7
      BACKUP_SUDDIX: ".gitlab.sql.gz"
    volumes:
      - /mnt/sda/backup/gitlab:/backups:z
    depends_on:
      - gitlab_db

Конфиг файл, на который есть ссылка в примере сообщения об ошибке, я не трогал и я впервые о нём узнал из этого сообщения.
  • Вопрос задан
  • 178 просмотров
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Специалист по информационной безопасности + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    DevOps-инженер + ИИ
    7 месяцев
    Далее
  • ProductStar × РБК
    Профессия DevOps-инженер + ИИ
    5 месяцев
    Далее
Решения вопроса 1
Daemon23RUS
@Daemon23RUS
Ошибка связан с компонентом GitLab Registry (как докер реестр, только Ваш)
Если не используете - отключите
environment:
      GITLAB_OMNIBUS_CONFIG: |
.......
        registry['enable'] = false

если используете - настройте в gitlab.rb
registry['enable'] = true
registry['external_url'] = 'https://gitlab.mysite.ru:443'
registry['nginx']['listen_port'] = 443

Но адаптировав под себя, можете в конфиге компостера, только погуглите как правильно писать параметры.
И не забывайте после изменений внутри контейнера делать
gitlab-ctl reconfigure
gitlab-ctl restart
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы