【发布时间】:2020-10-25 20:38:48
【问题描述】:
我开始为我的公司进入 GitLab CI。我们有一个 PrestaShop,我希望在 Git 推送后自动部署到 Web 服务器。
单元测试将在稍后进行。目前我只需要它来处理将“/app”文件夹的副本放在网络服务器的网络根目录中。
所以这就是我得到的......
before_script:
- apt-get update -qq
- apt-get install -qq git
- 'which ssh-agent || ( apt-get install -qq openssh-client )'
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
deploy_test:
type: deploy
environment:
name: test
url: [test server domain]
script:
- ssh [user]@[server] -p [port] "cd [repo folder] && git checkout master && git pull origin master && exit"
- ssh [user]@[server] -p [port] "rsync -rzvh [repo /app folder] [web server root path]"
only:
- master
最近,gitlab-runner 开始失败,错误为Error loading key "/dev/fd/63": invalid format。
你能帮我解决这个错误吗?
仅供参考,我在 GitLab 中将我的个人私钥设置为 $SSH_PRIVATE_KEY 环境变量 - 当然是 Web 服务器上的公共密钥。 SSH 在具有 WHM 和 cPanel 的 Web 服务器上启用。我通过 web 服务器上的 cPanel 将 master 的副本预先签出到 [repo 文件夹]。
【问题讨论】:
-
您在容器中运行什么操作系统和版本?您在什么操作系统和版本上生成 SSH 密钥?您尝试连接到什么操作系统和版本?
-
容器中的操作系统我不知道答案 - 我正在使用 GitLab.com,你知道在哪里可以找到它吗?它会在回购根目录中使用我的 docker-compose 吗?密钥是在 Windows 10 上生成的。远程服务器是 Redhat,我认为基于此系统信息:“Linux 3.10.0-957.21.2.el7.x86_64”
-
只是为了测试,你能用旧格式的密钥试试吗(-m PEM,如stackoverflow.com/a/53645530/6309)?
-
谢谢@VonC 我也会试试这个
-
看起来我也无法通过 SSH 在本地连接到同一台服务器 - 相关?!
标签: ssh gitlab prestashop web-deployment gitlab-ci