Настраиваем GitLab Container Registry

Containers 15-10-2021, 14:47 sobir 2 718 0


Задача: настроить GitLab Container Registry через обратный прокси в GitLab Nginx

Включаем инклуд сторонних конфигов в GitLab Nginx:
vi /etc/gitlab/gitlab.rb
Меняем:
# nginx['custom_nginx_config'] = "include /etc/nginx/conf.d/example.conf;"

На:
# nginx['custom_nginx_config'] = "include /etc/nginx/conf.d/*.conf;"

Создаем базовый конфиг для домена реестра:
server {
    listen       80;
    server_name  registry.newsite.com;

    root /usr/share/nginx/html;

    location / {
        deny all;
    }

    location ^~ /.well-known {
        default_type 'text/plain';
        allow all;
    }

    error_log   /var/log/nginx/registry_newsite_com_error.log error;
    access_log  /var/log/nginx/registry_newsite_com_access.log;
}

Создадим необходимые каталоги:
mkdir -p /etc/nginx/conf.d &&  mkdir /var/log/nginx && mkdir -p /usr/share/nginx/html

Переконфигурируем GitLab:
gitlab-ctl reconfigure

Получаем валидный сертификат от LE:
certbot certonly -a webroot -w /usr/share/nginx/html -d rg.moneycat.asia

Дополняем конфиг домена реестра:
server {
    listen       443 ssl;
    server_name  registry.newsite.com;

    ssl_certificate /etc/letsencrypt/live/registry.newsite.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/registry.newsite.com/privkey.pem;

    ssl_protocols TLSv1.1 TLSv1.2;
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;

    root /usr/share/nginx/html;

    location / {
        proxy_pass http://127.0.0.1:8090;
        proxy_read_timeout      300;
        proxy_connect_timeout   300;
        proxy_redirect          off;
        proxy_set_header        X-Forwarded-Proto https;
        proxy_set_header        Host              $http_host;
        proxy_set_header        X-Real-IP         $remote_addr;
        proxy_set_header        X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Ssl   on;
    }

    location ^~ /.well-known {
        default_type 'text/plain';
        allow all;
    }

    error_log   /var/log/nginx/registry_newsite_com_ssl_error.log error;
    access_log  /var/log/nginx/registry_newsite_com_ssl_access.log;
}

Вносим изменения для активации реестра:
vi /etc/gitlab/gitlab.rb
registry_external_url 'https://registry.newsite.com'
gitlab_rails['registry_enabled'] = true
registry['enable'] = true
registry_nginx['enable'] = true
registry_nginx['proxy_set_headers'] = {
  "Host" => "$http_host",
  "X-Real-IP" => "$remote_addr",
  "X-Forwarded-For" => "$proxy_add_x_forwarded_for",
  "X-Forwarded-Proto" => "https",
  "X-Forwarded-Ssl" => "on"
}
registry_nginx['listen_port'] = 8090
registry_nginx['listen_https'] = false

Переконфигурируем GitLab:
gitlab-ctl reconfigure

Проверяем аутентификацию и заливку образа:
docker login registry.newsite.com
docker build -t registry.newsite.com/test/test-1 .
docker push registry.newsite.com/test/test-1
Похожие новости
Установка веб сервера NGINX в CentOS 8 / RHEL 8

Установка последней стабильной версии популярного веб сервера NGINX....

Подробнее
Получаем валидные сертификаты SSL от Let's Encrypt для NGINX

Получаем валидные сертификаты SSL от Let's Encrypt для NGINX с использованием плагина webroot....

Подробнее
Разворачиваем NGINX в Docker

Создание кастомного образа nginx из Dockerfile....

Подробнее
Настройка частного реестра Docker Private Registry

Создаем свой репозиторий образов контейнеров Docker....

Подробнее
Настройка виртуальных хостов NGINX в CentOS / RHEL

Настройка обслуживания нескольких сайтов на одном веб сервере NGINX....

Подробнее
Комментарии (0)
Новые комментарии
komronu8 сентября 2022 18:23

Салом, можно ещё создать файл в /etc/nginx/proxy_params, a потом добавить туда

img
К комментарию
sobir26 августа 2022 10:43

Можно ещё так: 1. Создаем отдельную сеть для наших контейнеров docker network

img
К комментарию
komronu22 августа 2022 15:12

Спасибо за отзыв, написал отдельную статью по установке и настройке Ansible

img
К комментарию
sobir19 августа 2022 18:00

Думаю в статье необходимо также описать процесс установки Ansible.

img
К комментарию
sobir17 октября 2021 11:40

Принудительное обновление сертификата: certbot certonly --force-renew -d

img
К комментарию
sobir3 июля 2021 14:19

Можно, но я решил описать процесс копирования ключей более подробно.

img
К комментарию
Все комментарии
Какой дистрибутив Linux вы часто используете?
Календарь
«    Март 2024    »
ПнВтСрЧтПтСбВс
 123
45678910
11121314151617
18192021222324
25262728293031
Подпишись на канал