我已经更改了gitlab runner将用于登录到运行临时服务器的其他计算机的用户的密码(让我们称他为staging\u user),
而在
.gitlab-ci.yml
staging_deploy:
stage: deploy
variables:
SSH_EXEC: "ssh staging_user@staging_server"
DEPLOY_PATH: "/home/staging_user/project_site"
only:
- staging
script:
- ${SSH_EXEC} "if [ -d ${DEPLOY_PATH} ]; then \rm -r ${DEPLOY_PATH}/*; else mkdir -p ${DEPLOY_PATH}; fi"
- echo -e ${GITSSHKEY} > conf/.ssh/id_rsa
- scp -r * staging-user@staging_server://home/staging_user/project_site/
- ${SSH_EXEC} "cd ${DEPLOY_PATH}/; docker-compose build --no-cache --force-rm; docker-compose up -d"
- ${SSH_EXEC} "docker exec website_staging python /var/www/website.com/src/manage.py collectstatic --no-input"
gitlab runner在git01机器上运行,从那里gitlab runner ssh到staging_服务器用户是staging_用户(请参阅上面的ssh_EXEC值)
我注意到
GITSSHKEY
是存储在gitlab项目中的变量,位于:
gitlab.com/test_group/project_site/settings/ci_cd
.所以我认为需要更新这个SSH密钥,但我有点困惑,不确定在哪里运行SSH keygen来生成新密钥并粘贴到这里,不管我是从gitlab runner正在SSH'ing的地方还是在git01上运行SSH keygen
staging_server
机器
我明白了
错误
:
Service 'web' failed to build: error pulling image configuration: Get https://dseasb33srnrn.cloudfront.net/registry-v2/docker/registry/v2/blobs/sha256/0a/0a2bad7da9b55f3121f0829de061f002ef059717fc2ed23c135443081200000e/data?Expires=1526503430&Signature=LZNRPPcqYzFoeE94jHgdxyN7gONaewh3ZF2688IVPhrOFKt-DB20gcSZIytqiDff8Hk7CS60SFKoROkU4VWMroByNqAcrFeMJGEAG-GKSSLXKPqQUsxYeXyW5rRGGbC8CqARQKsj1GBR-fTvRstcrnfhQVrn9gv~IFtqRXNB-LM_&Key-Pair-Id=APKAJECH5M7VWIS5YZ6Q: net/http: TLS handshake timeout
website_web_1 is up-to-date
$ ${SSH_EXEC} "ls -lh /var/www/website.com/src/manage.py"
-rw-rw-r-- 1 staging_user staging_user 280 May 15 16:26 /var/www/website.com/src/manage.py
$ ${SSH_EXEC} "docker exec website_web_1 python /var/www/website.com/src/manage.py collectstatic --no-input"
python: can't open file '/var/www/website.com/src/manage.py': [Errno 2] No such file or directory