Capistrano configuration to deploy your Symfony apps.
This repository hosts contributed recipes for Composer packages that are not part of the "official" Symfony recipes. To enable recipes defined in this repository for your project, run the following command:
composer config extra.symfony.allow-contrib true
Add the package to your composer requirements.
composer require mobizel/symfony-capistrano
This page give some hit about Capistrano. To go further check the official documentation
Capistrano is a common tools to deploy a Symfony app. It allows to deploy your app without any interruption. Your document root in on a symlink which corresponds to a release directory. This symlink is updated when your build finished successfully.
We are going to use Bundler to install capistrano
$ gem install bundler
Run bundler install command to install gem dependancies in the project Gemfile
$ bundle install
Configure your environments
By defaults, there are two environments pre-configured:
These environments are configured in on
XX.XXX.XX.XXX with your server ip addresses
Deploy the staging environment
$ bundle exec "cap staging deploy"
Deploy the production environment
$ bundle exec "cap production deploy"
Create your own task
Capistrano allow you to build your own to exec during your deployment. This exemple create a task that execute a command on deployment target server.
namespace :namespace do desc "task description" task :task_name do on roles(:all) do |host| execute 'command executed on target server' end end end
Capistrano provides hooks in order to exec your task before or after a specific task. For example if you want to run a task to set a proxy on a remote server before any git check :
before 'git:check', 'deploy:add_proxy'