2016-11-20 59 views
0

如何在gitlab push上配置yii2項目到生產服務器的自動部署?在git push上自動部署

我發現了2個相關的東西:webhooks和gitlab-ci。如果我理解正確,當使用webhook時,webserver必須具有對項目文件夾的寫入權限,這是不好的。試圖配置gitlab-ci與私人亞軍在服務器上,但失敗了。

回購根文件夾中有3項:.gitlab-ci.yml文件和src文件夾以及.git文件夾。

#.gitlab-ci.yml 
stages: 
    - deploy 

deploy: 
    stage: deploy 
    script: 
    - cd ./src && composer install 
    only: 
    - prod 

在src文件夾中有一個yii2 basic項目。

大約3分鐘後,我推動prod分支我收到電子郵件消息「管道已成功」。但服務器文件夾中的文件沒有更新。我發現在/ home/gitlab-runner/..文件夾樹中有一個項目的副本。但我需要更新特定文件夾中的文件。那麼,在哪裏以及如何配置該文件夾?

+0

在表示管道成功的電子郵件中,您可以單擊鏈接進入構建日誌嗎?這可能有一些信息對於調試這個很有用。 –

+0

@ConnorShea,是的,構建日誌看起來像控制檯輸出,它在配置過程中非常有幫助。 – Ali

回答

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亞軍用戶Web服務器用戶組。在Ubuntu的服務器上使用這個命令:

sudo chmod g+w -R /path/on/server 
sudo usermod -a -G www-data gitlab-runner 

我願意接受任何建議。