Перейти к содержанию

Установка на Astra Linux (rootless)

Предварительные условия

На сервере должны быть установлены Docker Engine и Docker Compose для работы в непривилегированном (rootless) режиме. Кроме этого, необходимо создать папку для PostgreSQL.

Установка Docker Engine

  1. Установите пакет rootless-helper-astra.

    sudo apt install rootless-helper-astra
    

    Примечание

    Если ранее не был установлен пакет docker.io, то он установится автоматически.

  2. Включите пользовательские службы Docker для пользователей, которые будут использовать контейнеры Docker в rootless-режиме.

    sudo systemctl start rootless-docker@<имя_пользователя>;
    

    Требование к именам пользователей

    Имя пользователя не должно содержать тире, например, если вы хотели использовать пользователя "docker-user", то необходимо создать другого пользователя с именем "dockeruser".

  3. При необходимости, разрешите автоматический запуск этих служб.

    sudo systemctl enable rootless-docker@<имя_пользователя>;
    
  4. Проверьте работоспособность установленных пакетов, выполнив следующую команду.

    rootlessenv docker images
    

Установка Docker Compose

  1. Выполните следующую команду.

    mkdir -p ~/.docker/cli-plugins/  
    curl -SL https://github.com/docker/compose/releases/download/v2.24.1/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose  
    chmod +x ~/.docker/cli-plugins/docker-compose
    # Создадим симлинк в /usr/local/bin
    sudo ln -sf ~/.docker/cli-plugins/docker-compose /usr/local/bin/docker-compose
    
  2. Проверьте пакет.

    rootlessenv docker-compose version
    

Создание папки для PostgreSQL

  1. Создайте директорию, выполнив следующую команду.

    mkdir -p ./postgresql/data
    
  2. Определите UID и GID для папки data.

    export REMAP_UID=$(cat /etc/subuid | grep -i $USER | awk -F : '{print $2}')  
    export REMAP_GID=$(cat /etc/subgid | grep -i $USER | awk -F : '{print $2}')  
    export UID_70=$((${REMAP_UID}+69))  
    export GID_70=$((${REMAP_GID}+69))  
    sudo chown ${UID_70}:${GID_70} -R ./postgresql/data
    

Настройка расположения томов

Создайте директории, выполнив следующую команду.

    mkdir -p ./gitlab/data ./gitlab/logs ./gitlab/config/etc ./gitlab/config/ssl

Для хранения постоянных данных Система использует монтируемые на хост тома:

Локальный путь Расположение контейнера Назначение
./gitlab/data /var/opt/gitlab Хранение данных приложения
./gitlab/logs /var/log/gitlab Хранение логов
./gitlab/config/etc /etc/gitlab Хранение конфигурационных файлов Системы
./gitlab/config/ssl /etc/gitlab/ssl Хранение SSL сертификатов

Настройка уровня безопасности rootless Astra (актуально для Astra 1.8.2)

  1. Выполните команду, заменив sshuser на имя вашего пользователя.

    LABEL_DIR=$(ls -d /var/lib/rootlessdocker/sshuser/l*i*c*t*x* 2>/dev/null | head -1) && \
    mkdir -p "${LABEL_DIR}/.config/docker" && \
    cat > "${LABEL_DIR}/.config/docker/daemon.json" << 'EOF'
    {
    "astra-sec-level": 6
    }
    EOF
    
  2. Добавьте параметр в sysctl.conf.

    sudo sh -c 'echo "net.ipv4.ip_unprivileged_port_start=1" >> /etc/sysctl.conf'
    
  3. Примените изменения.

    sudo sysctl -p /etc/sysctl.conf
    
  4. Перезапустите rootless Docker.

    sudo pkill -f "dockerd.*sshuser" && sleep 2 && sudo /usr/share/rootless-helper-astra/start-rootless-dockerd.sh sshuser