Разверните контейнер докеров для цифровой капли из gitlab-ci
Итак, вот что я хочу сделать.
- Нажмите, чтобы выполнить мастеринг в git
- Имейте gitlab-ci услышать, что нажимают начало конвейера
- Конвейер создает код и помещает контейнер докера в реестр gitlab.
- Трубопровод входит в цифровую капельую воду через ssh
- Конвейер вытаскивает контейнер докера из реестра gitlab
- Конвейер запускает контейнер
Я могу подняться до шага 4 без проблем. Но шаг 4 просто терпит неудачу. Я пробовал подход ssh key:
Но это не сработало.
Итак, я попробовал простой текстовый пароль:
image: gitlab/dind:latest
before_script:
- apt-get update -y && apt-get install sshpass
stages:
- deploy
deploy:
stage: deploy
script:
- sshpass -p "mypassword" ssh [email protected] 'echo $HOME'
эта версия просто выходит с помощью code 1
так
Псевдотерминал не будет выделен, потому что stdin не является терминалом.
ln: failed to create symbolic link '/sys/fs/cgroup/systemd/name=systemd': Operation not permitted
/usr/local/bin/wrapdocker: line 113: 54 Killed docker daemon $DOCKER_DAEMON_ARGS &> /var/log/docker.log
Timed out trying to connect to internal docker host.
Есть ли лучший способ сделать это? Как я могу, по крайней мере, получить доступ к моей капле из среды сборки gitlab-ci?
Ответы
Ответ 1
Я только что ответил на этот связанный вопрос: Создать приложение реакции + Gitlab CI + капля Digital Ocean - конвейер завершился успешно, но контейнер Docker был удален сразу после
Вот решение, которое он использует для установки кредитов ssh:
before_script:
## Install ssh agent (so we can access the Digital Ocean Droplet) and run it.
- apk update && apk add openssh-client
- eval $(ssh-agent -s)
## Write the environment variable value to the agent store, create the ssh directory and give the right permissions to it.
- echo "$SECRETS_DIGITAL_OCEAN_DROPLET_SSH_KEY" | ssh-add -
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
## Make sure that ssh will trust the new host, instead of asking
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
И чтобы проверить:
- ssh -t ${SECRETS_DIGITAL_OCEAN_DROPLET_USER}@${SECRETS_DIGITAL_OCEAN_DROPLET_IP} 'echo $HOME'
Код кредита отправляется на https://stackoverflow.com/users/6655011/leonardo-sarmento-de-castro.