Problemas para usar capistrano 3 durante la implementación

Tengo problemas para usar capistrano 3 durante la implementación. Mi aplicación se ejecuta en el directory / tmp de forma pnetworkingeterminada aunque mencione la ruta de implementación (deploy_to). Se ha producido un error de permiso denegado ejecutando el script gitssh que utiliza el límite.

Despliegue de $ cap desarrollo: cheque

INFO [8ad6d60d] Running mkdir -p /tmp/myapp/ on 40.12.255.11 INFO [8ad6d60d] Finished in 10.468 seconds with exit status 0 (successful). INFO Uploading /tmp/myapp/git-ssh.sh 100.0% INFO [b1e9863e] Running chmod +x /tmp/myapp/git-ssh.sh on 40.12.255.11 INFO [b1e9863e] Finished in 8.093 seconds with exit status 0 (successful). 

$ cat /tmp/myapp/git-ssh.sh

 #!/bin/sh -e exec /usr/bin/ssh -o PasswordAuthentication=no -o StrictHostKeyChecking=no "[email protected]" 

config / deploy.rb

 set :application, "myapp" set :scm, :git set :repo_url, "[email protected]:example/webapp.git" set :deploy_to, "/home/ec2-user/capistrano-3/myapp" set :ssh_options, {:keys => ["#{ENV['HOME']}/.ssh/myapp.pem"] } set :log_level, :info set :rvm_ruby_string, '2.0.0' set :rvm_type, :user set :branch, "master" set :user, "ec2-user" set :use_sudo, false set :keep_releases, 2 set :git_shallow_clone, 1 set :deploy_via, :copy set :whenever_command, "bundle exec whenever" require 'sidekiq/capistrano' namespace :deploy do desc 'Restart application' task :restart do on roles(:app), in: :sequence, wait: 5 do # Your restart mechanism here, for example: # execute :touch, release_path.join('tmp/restart.txt') end end after :restart, :clear_cache do on roles(:web), in: :groups, limit: 3, wait: 10 do # Here we can do anything such as: # within release_path do # execute :rake, 'cache:clear' # end end end after :finishing, 'deploy:cleanup' end 

Capfile

 require 'capistrano/setup' require 'capistrano/deploy' require 'capistrano/rvm' require 'capistrano/bundler' Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r } 

config / deploy / development.rb

 set :deploy_to, "/home/ec2-user/capistrano-3/myapp" set :rails_env, "development" set :unicorn_env, "development" server "[email protected]", user: "ec2-user", roles: %w{web app db} set :branch, ENV["REVISION"] || ENV["BRANCH_NAME"] || "master" 

Mis preguntas son

1. ¿Por qué se genera tmp / myapp? He mencionado el path en deploy_to. ¿Cómo superar esto?

2. Cómo evitar el file git-ssh.sh generado. Tiene algunos problemas de contraseña como se mencionó anteriormente. ¿Cómo puedo superar todo el problema para tener una implementación adecuada?

Gracias de antemano por cualquier ayuda

  1. /tmp/myapp no es en realidad donde se está ejecutando la aplicación. Es parte de la tarea git: wrapper que crea esa carpeta y verifica que tenga los permissions correctos. Una vez que lo implemente, saldrá a la carpeta correcta que especificó "/ home / ec2-user / capistrano-3 / myapp"

  2. Adjunte el logging de los errores para tener una mejor idea de lo que está sucediendo allí. La implementación: la comprobación se realiza con éxito arriba "con el estado de salida 0 (correcto)".

Puede cambiar el directory tmp usando :tmp_dir Referencia: https://github.com/capistrano/capistrano/blob/master/README.md#configuration

para resolver este problema, se debe agregar la siguiente línea en el file deploy.rb :

 set :tmp_dir, "/home/user/tmp" 

Este command resuelve el problema capistrano3

cap jefferson deploy:setup

cap jefferson deploy:check

cap jefferson deploy

reiniciar el sistema