Gitlab - Google计算引擎持续交付

时间:2017-03-14 00:10:05

标签: swift3 gitlab google-compute-engine continuous-deployment vapor

我要做的是启用从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个多小时才结果出来了。 而且......我还有几个问题:

  1. Gitlab runner在此位置的位置/home/gitlab-runner/builds/下创建构建,每个新作业都有自己的文件夹。例如。 /home/gitlab-runner/builds/2bbbbbd/我的项目和执行的命令。那么当第一个运行并且我部署新版本时会发生什么?端口被第一个实例阻止,依此类推?
  2. 如果我想启用supervisor,每次部署文件夹时,如何处理此问题?
  3. 任何人都可以向我解释或向我展示或指导我如何使用docker进行持续部署吗?

1 个答案:

答案 0 :(得分:1)

How to start a service using GitLab runner

感谢长时间的深度搜索,我终于找到了答案!完整的文章可以在上面找到。

简要说明GitLab CI文档建议使用dpl进行部署。 Gitlab跑步者跑步测试和过程应该结束。运行器旨在在完成每个构建后终止所有创建的进程。 GitLab运行器无法在目录外执行操作。