【发布时间】:2019-01-28 12:13:20
【问题描述】:
这就是我想要做的。
- 在 git 中推送到 master
- 让 gitlab-ci 听到推送启动管道
- 管道构建代码并将 docker 容器推送到 gitlab 注册表
- 管道通过 ssh 登录到数字海滴
- 管道从 gitlab 注册表中拉取 docker 容器
- 管道启动容器
我可以达到第 4 步没问题。但是第 4 步只是失败了。我已经尝试过 ssh 密钥方法:
但这没有用。
所以我尝试了这样的纯文本密码方法:
image: gitlab/dind:latest
before_script:
- apt-get update -y && apt-get install sshpass
stages:
- deploy
deploy:
stage: deploy
script:
- sshpass -p "mypassword" ssh root@x.x.x.x 'echo $HOME'
这个版本只是像这样以code 1 退出
不会分配伪终端,因为标准输入不是终端。
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 构建环境中访问我的 droplet?
【问题讨论】:
-
您是否设法找到解决方法或解决此问题?