如何在gitlab push上配置yii2项目到生产服务器的自动部署?
我找到了2个相关的东西:webhooks和gitlab-ci。如果我理解正确,当使用webhooks时,webserver必须具有对项目文件夹的写入权限,这很糟糕。尝试在服务器上配置私有跑步者gitlab-ci,但失败了。
repo根文件夹中有3个项目:.gitlab-ci.yml文件和src文件夹以及.git文件夹。
#.gitlab-ci.yml
stages:
- deploy
deploy:
stage: deploy
script:
- cd ./src && composer install
only:
- prod
src文件夹中有一个yii2 basic项目。
在推进prod分支后3分钟左右我收到邮件“管道已成功”的消息。但是服务器文件夹中的文件没有更新。我发现在/ home / gitlab-runner / ..文件夹树的某个地方有一个项目的副本。但我需要更新特定文件夹中的文件。那么,在哪里以及如何配置该文件夹?
答案 0 :(得分:0)
我通过试验找到了解决方案:
#.gitlab-ci.yml
stages:
- deploy
deploy:
stage: deploy
script:
- composer --no-interaction --no-progress --prefer-dist --working-dir=src install
- cp -Rf ${CI_PROJECT_DIR} /path/on/server/
only:
- prod
除此之外,我还将gitlab-runner用户添加到了Web服务器用户组。在使用此命令的ubuntu服务器上:
sudo chmod g+w -R /path/on/server
sudo usermod -a -G www-data gitlab-runner
我愿意接受任何建议。