-
Notifications
You must be signed in to change notification settings - Fork 0
How it's made
Duc Dao edited this page Aug 17, 2017
·
6 revisions
bundle init
First, add Capistrano gem to the Gemfile:
group :development do
gem "capistrano","~> 3.8"
end
Then, capify a project:
bundle install --path vendor/bundle
bundle exec cap install
Add Magento 2 Capistrano gem and other useful gem:
gem 'capistrano-magento2'
gem 'capistrano-composer'
gem 'capistrano-upload-config'
gem 'capistrano-file-permissions'
Add require gem to Capfile:
require 'capistrano/composer'
require 'capistrano/upload-config'
require 'capistrano/file-permissions'
# Load Magento deployment tasks
require 'capistrano/magento2/deploy'
Finally, install gem added above:
bundle install --path vendor/bundle
Create a customize task file named magento2.rake
in lib\capistrano\tasks
folder with simple content like that:
namespace :magento2 do
desc "Restart PHP FPM"
task :restart_php_fpm do
on roles(:all), in: :sequence, wait: 1 do
execute :sudo, 'service php7.0-fpm restart'
end
end
end
Open config/deploy.rb
, then add codes below:
set :linked_files, [
'app/etc/env.php',
'pub/.htaccess'
]
set :linked_dirs, [
'pub/media',
'var'
]
set :config_files, %w{app/etc/env.php pub/.htaccess}
# push link files after check them exist.
before 'deploy:check:linked_files', 'config:push'
Then, create app/etc/env.production.php
and pub/.htaccess.production
inside deploy repository.
set :magento_auth_public_key, 'MAGENTO_USERNAME'
set :magento_auth_private_key, 'MAGENTO_PASSWORD'
set :magento_deploy_setup_role, :all
set :magento_deploy_cache_shared, true
set :magento_deploy_languages, ['en_US']
set :magento_deploy_themes, []
set :magento_deploy_composer, true
set :magento_deploy_production, true
set :magento_deploy_maintenance, true
set :magento_deploy_confirm, []
set :magento_deploy_chmod_d, '0755'
set :magento_deploy_chmod_f, '0644'
set :magento_deploy_chmod_x, ['bin/magento']
set :file_permissions_roles, :all
set :file_permissions_paths, ["pub/static", "var"]
set :file_permissions_users, ["SERVER_USER"]
set :file_permissions_groups, ["SERVER_GROUP"]
set :file_permissions_chmod_mode, "0777"
before "deploy:updated", "deploy:set_permissions:acl"
before 'magento:deploy:verify', 'magento2:copy_config'
after 'magento:maintenance:disable', 'magento2:restart_php_fpm'
For staging site:
after 'magento:setup:static-content:deploy', 'magento2:add_adminer'