Gitlab - Google 计算引擎持续交付

Gitlab - Google compute engine Continuous delivery

我想做的是在 Google Cloude 上启用从 GitLab 到我的计算引擎的持续交付。我那边有 Ubuntu 16.04 TSL 运行ning。我确实安装了 运行 我的项目所需的所有组件,例如:Swift、vapor、nginx。 我也设法安装了 Gitlab 运行ner 并创建了一个 运行ner whcihc 可以从我的 gitlab 仓库访问。每次我按下 master 时 运行ner 触发器。由于以下原因发生的失败:

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 运行ner 在位置 /home/gitlab-runner/builds/ 下创建构建,在此位置每个新作业都有自己的文件夹。例如。 /home/gitlab-runner/builds/2bbbbbd/ 其中是我的项目并执行了命令。那么当第一个是 运行ning 并且我确实部署了新版本时会发生什么?端口被第一个实例阻塞等等?
  2. 如果我想启用 supervisor 当我每次部署文件夹都不同时,我该怎么做?
  3. 任何人都可以解释或向我展示或指导我如何在没有 docker 的情况下进行持续部署的教程吗?

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

简述 GitLab CI 文档推荐使用 dpl 进行部署。 Gitlab 运行ner 运行 测试和流程应该结束。 运行ner 旨在在每次构建完成后终止所有创建的进程。 GitLab 运行ner 无法执行目录外的操作。