我是gitlab CI / CD的新手,我正在努力解决这个问题。
我要做的就是当我推送到dev
分支时,我希望构建react
应用程序,并且希望将文件夹./build
通过SSH推送到我的{{1} }服务器。
这是我到目前为止所做的,包括我收到的错误消息的屏幕截图。
这是我的dev
gitlab-ci.yml
我不知道为什么要用image: node:latest
cache:
paths:
- node_modules/
build_dev:
stage: build
environment: Development
only:
- dev
script:
- ls
- npm install
- npm run build
artifacts:
paths:
- build/
- ecosystem.config.js
deploy_dev:
stage: deploy
environment: Development
only:
- dev
script:
- rsync -r -a -v -e ssh --delete "./build" root@dev.teledirectasia.com:/var/www/gitlab/${CI_PROJECT_NAME}
- rsync -r -a -v -e ssh --delete "./ecosystem.config.js" root@dev.teledirectasia.com:/var/www/gitlab/${CI_PROJECT_NAME}/
- ssh root@dev.teledirectasia.com "cd /var/www/gitlab/${CI_PROJECT_NAME} && pm2 start ecosystem.config.js"
来获得此输出
答案 0 :(得分:2)
这是DNS问题。您的跑步者无法解析GitLab服务器的主机名-gitlab.teledirectgroup.com
。您是手动设置本地工作站的主机文件还是设置GitLab主机名,还是在DNS服务器中将其设置为“正确”的主机名?
如果在DNS服务器中设置主机名,则解决方案可能很简单,就像将DNS服务器添加到运行器上的/etc/resolv.conf
一样。但是,如果仅在工作站的hosts文件中设置GitLab主机名,则也需要在运行者的/etc/hosts
文件中设置它。在不知道如何首先设置GitLab主机名的情况下,很难说出确切的解决方案。