我要做的是启用从GitLab到Google Cloude上的计算引擎的持续交付。我在那边运行Ubuntu 16.04 TSL。我确实安装了运行我的项目所需的所有组件:Swift,vapor,nginx。 我已经设法安装Gitlab运行器,并创建了一个可以从我的gitlab repo访问的运行器whcihc。每次我都按下主人,跑步者触发。由于以下原因导致失败:
could not create leading directories of '/home/gitlab-runner/builds/2bbbbbd/0/Server/Packages/vapor.git': Permission denied
如果我将权限更改为chmod -R 777
,那么gitlab管道上可见的running
阶段的build
会有所变化。
我做了类似的事情:
sudo chown -R gitlab-runner:gitlab-runner /home/gitlab-runner/builds
sudo chown -R gitlab-runner:gitlab-runner /home/gitlab-runner/cache
但这没有帮助,错误是相同的Permission denied
下面是我的.gitlab-ci.yml
before_script:
- swift --version
stages:
- build
- deploy
job_build:
stage: build
before_script:
- vapor clean
script:
- vapor build --release
only:
- master
job_run_app:
stage: deploy
script:
- echo "Deploy a API"
- vapor run --name=App --env=production
environment:
name: production
job_run_frontend:
stage: deploy
script:
- echo "Deploy a Frontend"
- vapor run --name=Frontend --env=production
environment:
name: production
但这并没有传递到下一阶段,例如。部署。我已经等了14个多小时才结果出来了。 而且......我还有几个问题:
/home/gitlab-runner/builds/
下创建构建,每个新作业都有自己的文件夹。例如。 /home/gitlab-runner/builds/2bbbbbd/
我的项目和执行的命令。那么当第一个运行并且我部署新版本时会发生什么?端口被第一个实例阻止,依此类推?supervisor
,每次部署文件夹时,如何处理此问题?答案 0 :(得分:1)
How to start a service using GitLab runner
感谢长时间的深度搜索,我终于找到了答案!完整的文章可以在上面找到。
简要说明GitLab CI文档建议使用dpl进行部署。 Gitlab跑步者跑步测试和过程应该结束。运行器旨在在完成每个构建后终止所有创建的进程。 GitLab运行器无法在目录外执行操作。