Swift3 Gitlab-谷歌计算引擎持续交付
我试图做的是在Google Cloude上实现从GitLab到我的计算引擎的连续交付。我有Ubuntu 16.04 TSL在那里运行。我确实安装了运行我的项目所需的所有组件,如:Swift、vapor、nginx。 我还设法安装了Gitlab runner,并创建了一个runner,可以从我的Gitlab repo访问它。每次我按下主按钮,跑步者就会触发。发生的故障是由于以下原因造成的:Swift3 Gitlab-谷歌计算引擎持续交付,swift3,gitlab,google-compute-engine,continuous-deployment,vapor,Swift3,Gitlab,Google Compute Engine,Continuous Deployment,Vapor,我试图做的是在Google Cloude上实现从GitLab到我的计算引擎的连续交付。我有Ubuntu 16.04 TSL在那里运行。我确实安装了运行我的项目所需的所有组件,如:Swift、vapor、nginx。 我还设法安装了Gitlab runner,并创建了一个runner,可以从我的Gitlab repo访问它。每次我按下主按钮,跑步者就会触发。发生的故障是由于以下原因造成的: 无法创建“/home/gitlab runner/builds/2bbbbd/0/Server/Packag
无法创建“/home/gitlab runner/builds/2bbbbd/0/Server/Packages/vapor.git”的前导目录:权限被拒绝
如果我将权限更改为chmod-R 777
,它将在gitlab pipeline上可见的运行的阶段挂起
我做了这样的事情:
sudo chown-R gitlab runner:gitlab runner/home/gitlab runner/builds
sudo chown-R gitlab runner:gitlab runner/home/gitlab runner/cache
但这没有帮助,错误是相同的权限被拒绝
下面是我的.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个多小时,但没有结果。
而且。。。我还有几个问题:
Gitlab runner在位置/home/Gitlab runner/builds/
下创建构建,每个新作业都有自己的文件夹。例如,/home/gitlab runner/builds/2bbbbd/
,其中是我的项目并执行命令。那么,当第一个版本运行时,我部署了新版本,会发生什么呢?端口被第一个实例阻塞等等
如果我想启用supervisor
当每次部署文件夹时都不一样,我该如何使用它
有谁能给我解释一下,或者给我演示一下,或者给我指点一下如何在没有docker的情况下进行连续部署的教程吗
多亏了长时间的深入搜索,我终于找到了答案!全文可以在上面找到
简而言之,GitLab CI文档建议使用dpl进行部署。Gitlab runner运行测试和进程应结束。运行程序设计为在完成每个构建后终止所有创建的进程。GitLab运行程序无法执行目录之外的操作。您是如何解决权限问题的?我自己也面临同样的问题。我确实使用了适合我的chmod-R 777
。我知道这不是完美的解决方案,但出于测试目的,它很好。然而,由于未完成的过程,它一直挂在build
上。对于CD,我现在的目标是dpl,在完成了一些关于gce的build
工作之后。现在也在研究CD的dpl