我想做的是从GitLab到我的Google Cloud计算引擎实现持续交付。我在那里运行Ubuntu 16.04 TSL。我已经安装了所有需要运行项目的组件,如:Swift、vapor和nginx。
我已经成功安装了Gitlab Runner,并创建了一个可从我的gitlab repo访问的runner。每次我在主分支上推送时,runner都会触发。但由于以下原因导致失败:
could not create leading directories of '/home/gitlab-runner/builds/2bbbbbd/0/Server/Packages/vapor.git': Permission denied
如果我将权限更改为chmod -R 777,则会在对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文件:
我已经成功安装了Gitlab Runner,并创建了一个可从我的gitlab repo访问的runner。每次我在主分支上推送时,runner都会触发。但由于以下原因导致失败:
could not create leading directories of '/home/gitlab-runner/builds/2bbbbbd/0/Server/Packages/vapor.git': Permission denied
如果我将权限更改为chmod -R 777,则会在对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个多小时了,但没有结果。并且...我还有几个问题:
- Gitlab runner在
/home/gitlab-runner/builds/
位置创建构建,在这个位置每个新工作都有自己的文件夹,例如/home/gitlab-runner/builds/2bbbbbd/
,其中有我的项目和执行的命令。那么当第一个正在运行时,我如何部署新版本?端口被第一个实例阻塞,以此类推? - 如果我想启用
supervisor
,每次部署文件夹都不同,我该怎么做? - 有人可以解释、展示或指向教程,介绍如何在不使用Docker的情况下进行持续部署吗?
chmod -R 777
,这对我来说有效。我知道这不是完美的解决方案,但出于测试目的,它还可以。然而,由于进程没有完成,它在build
上挂起了。至于 CD,我现在瞄准 dpl。 - Shial