где сохранить путь PID и сокетов единорога, когда папки распадаются после приложения mina deploy rails - PullRequest
0 голосов
/ 04 июня 2019

Я настроил сервер для развертывания моего приложения rails.Я не могу начать службу единорога.Это дает мне статус неудачника.Я совершенно новичок в этом.Итак, согласно этому уроку https://www.digitalocean.com/community/tutorials/how-to-deploy-a-rails-app-with-unicorn-and-nginx-on-ubuntu-14-04. я создал общие папки для сокета, PID на сервере.но я использую mina для развертывания после каждого выпуска моя общая папка, которую я создал вручную, исчезает и уходит со старым выпуском с моими файлами единорога.Таким образом, я создал эти общие папки на локальном рабочем столе, но они не отправляются на сервер через git.Так, где и как я должен поместить мои пайки и гнезда единорога, чтобы это работало ниже, мои файлы

мой файл unicorn.rb

root = "/home/deployer/apps/rails_app/current"
working_directory root
pid "#{root}/shared/unicorn.pid"
stderr_path "#{root}/log/unicorn.log"
stdout_path "#{root}/log/unicorn.log"

listen "/shared/unicorn.railsapp.sock"
worker_processes 2
timeout 30

preload_app true

Мой /etc/init.d/unicorn_rails_app файл

set -e

    USAGE="Usage: $0 <start|stop|restart|upgrade|rotate|force-stop>"

    # app settings
    USER="ggg"
    APP_NAME="rails_app"
    APP_ROOT="/home/$USER/$APP_NAME/current"
    ENV="production"

    # environment settings
    PATH="/home/$USER/.rbenv/shims:/home/$USER/.rbenv/bin:$PATH"
    CMD="cd $APP_ROOT && bundle exec unicorn -c config/unicorn.rb -E $ENV -D"
    PID="$APP_ROOT/shared/pids/unicorn.pid"
    OLD_PID="$PID.oldbin"

    # make sure the app exists
    cd $APP_ROOT || exit 1

    sig () {
      test -s "$PID" && kill -$1 `cat $PID`
    }

    oldsig () {
      test -s $OLD_PID && kill -$1 `cat $OLD_PID`
    }

    case $1 in
      start)
      sig 0 && echo >&2 "Already running" && exit 0
        echo "Starting $APP_NAME"
        su - $USER -c "$CMD"
        ;;
      stop)
        echo "Stopping $APP_NAME"
        sig QUIT && exit 0
        echo >&2 "Not running"
        ;;
      force-stop)
        echo "Force stopping $APP_NAME"
        sig TERM && exit 0
        echo >&2 "Not running"
        ;;
      restart|reload|upgrade)
        sig USR2 && echo "reloaded $APP_NAME" && exit 0
        echo >&2 "Couldn't reload, starting '$CMD' instead"
        $CMD
        ;;
      rotate)
        sig USR1 && echo rotated logs OK && exit 0
        echo >&2 "Couldn't rotate logs" && exit 1
        ;;
      *)
        echo >&2 $USAGE
        exit 1
        ;;
    esac

мой файл mina deploy.rb

требуют 'mina / bundler' требуют 'mina / rails' требуют 'mina / git' требуют 'mina / rbenv' # для поддержки rbenv.(http://rbenv.org)

set :domain, 'mydomain'
set :term_mode, :nil
set :deploy_to, 'path'
set :repository, 'myrepo'
set :branch, 'master'
set :user, 'gg'    # Username in the server to SSH to.
set :keep_releases, 5


set :shared_paths, ['config/database.yml', 'config/secrets.yml', 'log','tmp']

task :environment do
  invoke :'rbenv:load'
end

task :setup => :environment do
  queue! %[mkdir -p "#{deploy_to}/#{shared_path}/log"]
  queue! %[chmod g+rx,u+rwx "#{deploy_to}/#{shared_path}/log"]

  queue! %[mkdir -p "#{deploy_to}/#{shared_path}/config"]
  queue! %[chmod g+rx,u+rwx "#{deploy_to}/#{shared_path}/config"]

  queue! %[touch "#{deploy_to}/#{shared_path}/config/database.yml"]
  queue! %[touch "#{deploy_to}/#{shared_path}/config/secrets.yml"]
  queue  %[echo "-----> Be sure to edit '#{deploy_to}/#{shared_path}/config/database.yml' and 'secrets.yml'."]
  if repository
    repo_host = repository.split(%r{@|://}).last.split(%r{:|\/}).first
    repo_port = /:([0-9]+)/.match(repository) && /:([0-9]+)/.match(repository)[1] || '22'

    queue %[
      if ! ssh-keygen -H  -F #{repo_host} &>/dev/null; then
        ssh-keyscan -t rsa -p #{repo_port} -H #{repo_host} >> ~/.ssh/known_hosts
      fi
    ]
  end
end

desc "Deploys the current version to the server."
task :deploy => :environment do
  to :before_hook do
  end
  deploy do
    invoke :'git:clone'
    invoke :'deploy:link_shared_paths'
    invoke :'bundle:install'
    invoke :'rails:db_migrate'
    invoke :'rails:assets_precompile'
    invoke :'deploy:cleanup'

    to :launch do
      queue "mkdir -p #{deploy_to}/current/tmp2/"
      queue "touch #{deploy_to}/current/tmp2/restart.txt"
    end
  end
end

Я получаю эти ошибки

unicorn_rails_app.service - LSB: запускает сервер приложений Unicorn Loaded: загружен (/etc/init.d/unicorn_rails_app; создан)Активен: не удалось (Результат: код выхода) с вт. 2019-06-04 07:35:52 UTC; 10 с. Назад Документы: man: systemd-sysv-generator (8) Процесс: 30422 ExecStart = / etc / init.d /unicorn_rails_app start (код = выход, статус = 1 / отказ)

1 Ответ

0 голосов
/ 04 июня 2019

Храните их в общей папке, вы можете создать символическую ссылку на папку tmp в общей папке.

...