我想要做的是启用从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
如果我将权限更改为qazxsw poi它将在qazxsw poi上更改为gazlab管道上可见的qazxsw poi阶段。
我做了类似的事情:chmod -R 777
running
但这没有帮助,错误是相同的build
下面你有我的sudo chown -R gitlab-runner:gitlab-runner /home/gitlab-runner/builds
sudo chown -R gitlab-runner:gitlab-runner /home/gitlab-runner/cache
但这还没有传递到下一阶段,例如。部署。我已经等了14个多小时才结果出来了。而且......我还有几个问题:
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
,那么当我每次部署文件夹时,我是如何做到这一点的呢?/home/gitlab-runner/builds/
感谢长时间的深入搜索,我终于找到了答案!完整的文章可以在上面找到。
简而言之,GitLab CI文档建议使用dpl进行部署。 Gitlab跑步者跑步测试和过程应该结束。运行器旨在在完成每个构建后终止所有创建的进程。 GitLab运行器无法在目录外执行操作。