diff --git a/deploy/.gitignore b/deploy/.gitignore new file mode 100644 index 00000000..3615120b --- /dev/null +++ b/deploy/.gitignore @@ -0,0 +1 @@ +.env.* diff --git a/deploy/config/deploy.rb b/deploy/config/deploy.rb index a1db8f43..598e4df9 100644 --- a/deploy/config/deploy.rb +++ b/deploy/config/deploy.rb @@ -39,9 +39,6 @@ set :branch, "release" # Uncomment the following to require manually verifying the host key before first deploy. # set :ssh_options, verify_host_key: :secure -# 发布时是否上传 .env 文件 -set :laravel_upload_dotenv_file_on_deploy, false - namespace :php_fpm do desc "重启 PHP-FPM" task :restart do diff --git a/deploy/lib/capistrano/tasks/laravel.rake b/deploy/lib/capistrano/tasks/laravel.rake index ea6542f7..b9a513d2 100644 --- a/deploy/lib/capistrano/tasks/laravel.rake +++ b/deploy/lib/capistrano/tasks/laravel.rake @@ -8,9 +8,6 @@ namespace :load do # 上传时的本地 .env 文件 set :laravel_dotenv_file, ".env.#{fetch(:stage)}" - # 软链文件 - set :laravel_linked_files, [".env"] - # 软链文件夹 set :laravel_linked_dirs, ["storage"] @@ -32,7 +29,7 @@ namespace :load do end namespace :laravel do - desc "上传 .env 文件到共享目录" + desc "上传 .env 文件到发布目录" task :upload_dotenv_file do next unless fetch(:laravel_upload_dotenv_file_on_deploy) @@ -43,23 +40,7 @@ namespace :laravel do end on release_roles(fetch(:laravel_roles)) do - upload! dotenv_file, "#{shared_path}/.env" - end - end - - desc "检查软链文件" - task "check:linked_files" do - on release_roles(fetch(:laravel_roles)) do - laravel_linked_files = fetch(:laravel_linked_files) - - next unless laravel_linked_files - - # 创建用于软链的文件 - within shared_path do - execute :touch, laravel_linked_files.join(" ") - end - - set :linked_files, fetch(:linked_files, []).push(*laravel_linked_files) + upload! dotenv_file, "#{release_path}/.env" end end @@ -79,6 +60,10 @@ namespace :laravel do next unless laravel_writable_dirs + within release_path do + execute :mkdir, "-p", laravel_writable_dirs.join(" ") + end + set :file_permissions_paths, fetch(:file_permissions_paths, []) .push(*laravel_writable_dirs) .uniq @@ -171,7 +156,7 @@ namespace :deploy do end before "deploy:starting", "laravel:check:linked_dirs" - after "deploy:check:directories", "laravel:check:linked_files" + after "deploy:updated", "laravel:upload_dotenv_file" after "deploy:updated", "laravel:writable" after 'deploy:updated', 'deploy:set_permissions:acl' after "deploy:updated", "deploy:vendors"