ruby on rails - Set up Mina to use Passenger and Docker -
i trying set mina's deploy.rb file. however, running several hurdles.
my rails 5 app uses docker database (postgresql) , redis background jobs. using phusion passenger (nginx) webserver.
this deploy.rb file looks @ moment:
require 'mina/rails' require 'mina/git' require 'mina/rvm' set :application_name, 'app' set :domain, 'my_app.com' set :deploy_to, '/var/www/my_app.com' set :repository, 'git@github.com:myuser/my_app.git' set :branch, 'master' # username in server ssh to. set :user, 'myuser' # shared dirs , files symlinked app-folder # not sure if necessary 'deploy:link_shared_paths' step. set :shared_dirs, fetch(:shared_dirs, []).push('log', 'tmp/pids', 'tmp/sockets', 'public/uploads') set :shared_files, fetch(:shared_files, []).push('config/database.yml', 'config/secrets.yml', 'config/puma.rb') task :environment invoke :'rvm:use', 'ruby-2.4.1@default' end task :setup %w(database.yml secrets.yml puma.rb).each { |f| command %[touch "#{fetch(:shared_path)}/config/#{f}"] } comment "be sure edit #{fetch(:shared_path)}/config/database.yml, secrets.yml , puma.rb." end desc "deploys current version server." task :deploy deploy comment "deploying #{fetch(:application_name)} #{fetch(:domain)}:#{fetch(:deploy_to)}" # put things set empty directory set-up # instance of project. invoke :'git:clone' invoke :'deploy:link_shared_paths' invoke :'bundle:install' comment 'cleaning docker builds' command 'docker stop $(docker ps -qa)' command 'docker rm $(docker ps -qa)' comment 'stopping docker' command 'docker-compose stop' comment 'starting docker' command 'docker-compose -d; sleep 5' invoke :'rails:db_migrate' invoke :'rails:assets_precompile' invoke :'deploy:cleanup' end end
i came file looking bit here bit there. seems run properly. however, here problems facing:
i not able run
passenger-config restart-app $(pwd)
orpassenger-config restart-app $(#{fetch(:current_path)})
having restart passenger logging server , run command manually reason. kind of defeats purpose of using mina, should automate deploy process.once start passenger, seeing database error like:
f, [2017-08-21t08:42:40.145292 #29048] fatal -- : [28d9fb0f-f187-4d16-b3bc-f947c4ec726f] f, [2017-08-21t08:42:40.145378 #29048] fatal -- : [28d9fb0f-f187-4d16-b3bc-f947c4ec726f] activerecord::statementinvalid (pg::undefinedtable: error: relation "subscriptions" not exist line 8: a.attrelid = '"subscriptions"'::regclas...
but sure not erring in dev think might have how deploying docker in production.
does have idea of how can proper docker + passenger setup mina?
just info, docker-compose.yml file looks this:
version: "2" services: postgres: image: postgres:9.6 ports: - "5432:5432" environment: postgres_db: "${database_name}" postgres_password: "${database_password}" volumes: - postgres-data:/var/lib/postgresql/data redis: image: redis:latest ports: - "6379:6379" volumes: postgres-data: driver: local
thanks in advance!
Comments
Post a Comment