我有 nginx nginx unit django python 應用程式,django 專案是由capistrano
deploy.rb
lock "~> 3.16.0"
set :application, "mynavi"
set :branch, 'master'
set :deploy_to, "/var/www/html/mynavi"
set :linked_dirs, fetch(:linked_dirs, []).push('static')
set :keep_releases, 3
set :linked_files, %w{.env}
set :repo_url, "[email protected]:/~/myGit/mynavi.git"
production.rb
set :stage, :production
set :branch, 'master'
server 'lion.example.jp', user: 'ubuntu', roles: %w(app), primary: true
namespace :deploy do
desc 'Collec Static Files'
task :collectImg do
on roles(:app) do
execute "source activate mynavi;/home/ubuntu/anaconda3/envs/mynavi/bin/python /var/www/html/mynavi/current/manage.py collectstatic --noinput"
end
end
after :publishing, :collectImg
end
cap prodution deploy使部署成功
但是,部署后
我需要unit手動重啟。
sudo systemctl restart unit
我可以在部署后自動執行此操作嗎?
解決方案
感謝@Timo Stark 的回答
我最終的 production.rb 在這里,只是添加了卷曲線。
production.rb
set :stage, :production
set :branch, 'master'
server 'lion.example.jp', user: 'ubuntu', roles: %w(app), primary: true
namespace :deploy do
desc 'Collec Static Files'
task :collectImg do
on roles(:app) do
execute "source activate mynavi;/home/ubuntu/anaconda3/envs/mynavi/bin/python /var/www/html/mynavi/current/manage.py collectstatic --noinput"
execute "sudo curl -X GET --unix-socket /path/to/control.unit.sock http://localhost/control/applications/app_name/restart"
end
end
after :publishing, :collectImg
end
uj5u.com熱心網友回復:
使用最新版本,您可以重新啟動應用程式并讓 Unit 從 workdir 重新加載代碼。
sudo curl -X GET --unix-socket /path/to/control.unit.sock \
http://localhost/control/applications/app_name/restart
https://unit.nginx.org/configuration/#process-management
很高興進一步討論 capistrano 的集成。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/435553.html
標籤:Python django nginx 卡皮斯特拉诺 nginx单元
上一篇:將查詢引數附加到特定URI
