334 文字
2 分
PHPのDeployerをCircleCI上で実行して自動デプロイ

概要#

CircleCIからDeployer

https://github.com/matsubo/phpapp/blob/master/README.md

Setup#

Terminal window
% git clone [email protected]:matsubo/phpapp.git
% cd phpapp
% composer install

Command example#

Terminal window
% time php vendor/bin/dep deploy test
✈︎ Deploying master on blog.teraren.com
Executing task deploy:prepare
Executing task deploy:lock
Executing task deploy:release
Executing task deploy:update_code
Cloning into '/home/matsu/Sites/teraren.com/phpapp/releases/2'...
Counting objects: 36, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (16/16), done.
Writing objects: 100% (36/36), done.
Total 36 (delta 12), reused 36 (delta 12)
Connection to blog.teraren.com closed.
Ok
Executing task deploy:shared
Executing task deploy:writable
Executing task deploy:vendors
Executing task deploy:clear_paths
Executing task deploy:symlink
Executing task deploy:unlock
Executing task cleanup
Successfully deployed!
15.56 real 0.65 user 0.60 sys

Setup history#

Terminal window
% composer init
% composer require deployer/deployer --dev
% php vendor/bin/dep init
% vim deploy.php; vim hosts.yml

Nginx側の設定。普通な感じで。

server {
listen 80;
listen [::]:80;
server_name phpapp.teraren.com;
location / {
root /home/matsu/Sites/teraren.com/phpapp/current/webroot;
index index.php index.html index.htm;
access_log /var/log/nginx/phpapp.teraren.com main;
location ~ \.php {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}

まとめ#

  • DeployerとCircleCIの組み合わせはとても楽。
  • AutoScale用の設定が無いので、AWSのCodeDeployと連携した方が良さそうです。
    • CircleCI -> bastion -> Application server という構成のベストな設定は見つからなかった。自分でコマンドを色々書かないといけなさそうな気がする。それを考えるとCodeDeployに任せた方が楽な気がする。
PHPのDeployerをCircleCI上で実行して自動デプロイ
https://blog.teraren.com/posts/php-deployer/
作者
Yuki Matsukura
公開日
2019-08-19
ライセンス
CC BY-NC-SA 4.0

コメント