2

我想要做的是启用从GitLab到Google Cloude上的计算引擎的连续交付。我在那里运行Ubuntu 16.04 TSL。我确实安装了运行我的项目所需的所有组件,如:Swift,Steam,nginx。 我已经设法安装Gitlab runner,并创建了一个跑步者,可以从我的gitlab repo访问。每次我推动掌握跑步者触发器。发生什么事是失败的原因是:Gitlab - Google compute engine持续交付

could not create leading directories of '/home/gitlab-runner/builds/2bbbbbd/0/Server/Packages/vapor.git': Permission denied

如果我的权限更改为chmod -R 777这将焊割上runningbuild舞台上gitlab管道可见。

我不喜欢的东西: 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小时,但没有结果。 而且......我有几个问题:

  1. Gitlab亚军创建构建下的位置/home/gitlab-runner/builds/在此位置每个新任务都有自己的文件夹。例如。 /home/gitlab-runner/builds/2bbbbbd/其中是我的项目和命令执行。那么当第一个正在运行并且我部署新版本时会发生什么?端口被第一个实例阻止了,如此等等?
  2. 如果我想启用supervisor当我每次部署文件夹的时候,我该如何做到这一点?
  3. 任何人都可以解释或显示我或指向我的教程如何与外部码头持续部署?
+0

您是如何解决您的权限问题的?自己面对同样的问题。 –

+0

我确实使用了适用于我的'chmod -R 777'。我知道这不是完美的解决方案,但为了测试目的,这很好。不过,由于这个过程还没有完成,所以它挂在'build'上。对于CD我现在瞄准dpl – Shial

+0

经过一些工作,我得到了'build'来处理gce。也正在寻找dpl现在的CD –

回答

1

How to start a service using GitLab runner

由于长而深的搜索我finnaly faound的answear!完整的文章可以在上面找到。 简要说明GitLab CI文档建议使用dpl进行部署。 Gitlab亚军运行测试和过程应该结束。跑步者的目的是在完成每次构建后终止所有创建的进程。 GitLab跑步者无法在目录之外执行操作。