2.5. Capistrano の設定


capify コマンドを実行すると、Capfile および deploy.rb の 2 つのファイルが作成されます。deploy.rb では、アプリケーションをデプロイするために必要なすべてのコマンドを記述します。

/config edit deploy.rb で、コンテンツを以下に置き換えます。

require "bundler/capistrano"
set :application, "YOURAPINAME"
set :user,"USERNAME"
set :scm, :git
set :repository, "git@github.com:GITHUBUSERNAME/REPO.git"
set :branch, "master"

set :use_sudo, false

server "VNDNSname", :web, :app, :db, primary: true

set :deploy_to, "/home/#{user}/apps/#{application}"
default_run_options[:pty] = true
ssh_options[:forward_agent] = false
ssh_options[:port] = 22
ssh_options[:keys] = ["/PATH/TO/myPrivateKey.key"]

namespace :deploy do
    task :start, :roles => [:web, :app] do
      run "cd #{deploy_to}/current && nohup bundle exec thin start -C config/production_config.yml -R config.ru"
      sudo "/opt/openresty/nginx/sbin/nginx -p /opt/openresty/nginx/ -c /opt/openresty/nginx/conf/nginx.conf"
    end

    task :stop, :roles => [:web, :app] do
      run "kill -QUIT cat /opt/openresty/nginx/logs/nginx.pid"
      run "cd #{deploy_to}/current && nohup bundle exec thin stop -C config/production_config.yml -R config.ru"
    end

    task :restart, :roles => [:web, :app] do
      deploy.stop
      deploy.start
    end

    task :setup_config, roles: :app do
      sudo "ln -nfs #{current_path}/config/nginx.conf /opt/openresty/nginx/conf/nginx.conf"
      sudo "ln -nfs #{current_path}/config/lua_tmp.lua /opt/openresty/nginx/conf/lua_tmp.lua"
      sudo "mkdir -p #{shared_path}/config"
    end
    after "deploy:setup", "deploy:setup_config"
end
Copy to Clipboard Toggle word wrap

これにより、Capistrano が rake:migrate の実行を試行しないようにします。(これは Rails プロジェクトではありません!)

task :cold do
  deploy.update
  deploy.start
end
Copy to Clipboard Toggle word wrap

上記のテキストで、以下を置き換えます。

  • VNDNSname .cloudapp.net DNS に置き換えます。
  • YOURAPINAME applicationame を使用して、
  • USERNAME 仮想マシンへのログインに使用されるユーザー名を使用します。
  • GITHUBUSERNAME Github のユーザー名と合わせて使用できます。
  • REPO Github リポジトリー名を使用する。
  • /PATH/TO 前のステップで作成した SSH キーにアクセスするためのパスを指定します。

API にデータベースがない場合は、上記が正常に機能します。データベースがある場合は、行をコメント化します。

task :cold do
  deploy.update
  deploy.start
end
Copy to Clipboard Toggle word wrap

また、/configproduction_config.yml ファイルを追加して Thin サーバーを設定する必要があります。

environment: production
chdir: /home/USERNAME/apps/YOURAPINAME/current/
address: 127.0.0.1
user: USERNAME
port: 8000
pid: /home/USERNAME/apps/YOURAPINAME/current/tmp/thin.pid
rackup: /home/USERNAME/apps/YOURAPINAME/current/config.ru
log: /home/USERNAME/apps/YOURAPINAME/current/log/thin.log
max_conns: 1024
timeout: 30
max_persistent_conns: 512
daemonize: true
Copy to Clipboard Toggle word wrap

ここでも、ユーザー名とパスを変更します。

プロジェクトの変更をコミットし、それらを GitHub にアップロードします。

git add .
git commit -m "adding config files"
git push
Copy to Clipboard Toggle word wrap

ほとんど行われています。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat