Установка GitLab-CE с использованием Docker -Compose файла - S sh git пользователь спрашивает пароль - PullRequest
0 голосов
/ 01 мая 2020

Я успешно установил GitLab-CE, используя Docker-Compose file, как показано ниже по ссылке на моем Docker хост-сервере.

https://docs.gitlab.com/omnibus/docker/#install -gitlab-using- docker -compose

Мой docker-compose.yml контент выглядит следующим образом.

web:
  image: 'gitlab/gitlab-ce:latest'
  restart: always
  hostname: 'gitlab.example.com'
  environment:
    GITLAB_OMNIBUS_CONFIG: |
      external_url 'https://gitlab.example.com'
      gitlab_rails['gitlab_shell_ssh_port'] = 2223
  ports:
    - '80:80'
    - '443:443'
    - '2223:22'
  volumes:
    - '$GITLAB_HOME/gitlab/config:/etc/gitlab'
    - '$GITLAB_HOME/gitlab/logs:/var/log/gitlab'
    - '$GITLAB_HOME/gitlab/data:/var/opt/gitlab'

В одной из моих клиентских систем Ubuntu, когда я запускаю ssh -T -p 2223 git@gitlab.example.com, он работает (показывает Welcome to GitLab). Тогда как на моем docker хосте, если я удалю следующее - gitlab_rails['gitlab_shell_ssh_port'] = 2223 в моем gitlab.rb файле после запуска gitlab-ctl reconfigure. Опять же, если я запускаю ssh -T git@gitlab.example.com, он запрашивает git пароль пользователя.

Docker - прослушивание 22 порта сервера, как показано ниже.

netstat -tulnp | grep :22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1516/sshd
tcp6       0      0 :::2222                 :::*                    LISTEN      2587/docker-proxy
tcp6       0      0 :::22                   :::*                    LISTEN      1516/sshd

Поскольку служба sshd уже запущена на порту 22 на моем сервере docker, так что есть ли способ использовать порт 22 по умолчанию для клонирования нашего репозитория GitLab? Без изменения порта по умолчанию sshd. Как пример команды ниже, я хотел бы клонировать. Поэтому любое предложение будет полезным.

git clone git@gitlab.example.com:sample-group/sample.git

@ Exadra37, я обновил данные, которыми вы поделились, и попытался восстановить, но это не удалось.

[root@gitlab]# docker-compose up --build
WARNING: The SSH_AUTH_SOCK variable is not set. Defaulting to a blank string.
Recreating 486bb3cb8496_docker-gitlab-ce_web_1 ... error

ERROR: for 486bb3cb8496_docker-gitlab-ce_web_1  Cannot create container for service web: create .: volume name is too short, names should be at least two alphanumeric characters

ERROR: for web  Cannot create container for service web: create .: volume name is too short, names should be at least two alphanumeric characters
ERROR: Encountered errors while bringing up the project.

1 Ответ

0 голосов
/ 01 мая 2020

Вам необходимо сопоставить сокет s sh с контейнером.

Добавьте в файл docker-compose.yml следующее:

environment:
  - SSH_AUTH_SOCK=/ssh-agent
volumes:
  - $SSH_AUTH_SOCK:/ssh-agent
...