問題タブ [capistrano3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
433 参照

ruby-on-rails - Capistrano3 デプロイメント エラー (エラー: gem ネイティブ拡張のビルドに失敗しました。)

capistrano3 での展開中にバンドル インストールで次のエラーが発生する

Gemfile.lock に、インストールを要求する特定のバージョンのアトミック gem があります。
アトミック(1.1.16)で、ec2マシンにも手動でインストールしました。しかし、展開中に繰り返し次のように言います。

0 投票する
1 に答える
9387 参照

capistrano - Capistrano 3 での「タスクのビルド方法がわからない」エラー

DOCS に従って Capistrano 3 の使用方法を学ぼうとしています。理解度をテストするための簡単なタスクを作成しました。

タスクは、次のデフォルトtaskディレクトリに作成されlib/capistrano/tasksます。

私のconfig/deploy/staging.rbファイルには以下が含まれています:

キャップファイル

Mydeploy.rbには、アプリ名と github へのリポジトリ URL が含まれています。

実行するcap staging nginx_statusと、次のエラーが表示されます。

cap -vTまた、タスクを実行nginx_statusしてもリストにないことに気付きました(?)

余談ですが、リモートサーバーに接続するにはSSHキーが必要ですか?

更新 1

タスクを配置すると機能することがわかりましたconfig/deploy.rb。だから私が今持っている質問は、タスクディレクトリからどのようにタスクを実行するのですか?

更新 2

したがって、Capfile に従ってtasksディレクトリは次のように調べられます。

そのため、タスク拡張機能をに変更したところ、機能し.rakeました。ただし、ドキュメントにはそうあるべきだと書かれています.cap

「後で詳しく説明しますが、これらの行を ./lib/capistrano/tasks のファイルに追加し、access_check.cap のように呼び出します」

0 投票する
1 に答える
747 参照

git - capistrano3 を使用したデプロイ時の認証ソケットへの書き込みエラー

capistrano 3 でデプロイを行うと、エラーが発生しますが、致命的ではなく、最終的にデプロイは成功します。

私のエラーメッセージは次のとおりです: 認証ソケットへの書き込みエラー

このエラー メッセージは 3 回表示されました。

このような:

この:

私はこのエラーで作業できますが、解決できればより良いでしょう:)

0 投票する
2 に答える
2661 参照

ruby-on-rails - Capistrano 3 はログイン シェルを使用します

ログイン/非ログイン、インタラクティブ/非インタラクティブシェルのこの素晴らしい説明を読みましたhttp://capistranorb.com/documentation/faq/why-does-something-work-in-my-ssh-session-but-not-in-capistrano / . しかし、特定のシェルで capistrano 3 を実行する方法がどこにも見つかりませんでした。次のようなオプションを試しました:

しかし、何も役に立ちませんでした。ありがとう。

0 投票する
1 に答える
1443 参照

ruby-on-rails - Capistrano はバンドラーに RAILS_ENV を設定しません

私の Gemfile では、RAILS_ENV に基づいて、git リポジトリで使用するブランチを指定します。ただし、Capistrano がデプロイされると、bundle installコマンドが実行されます。コマンドはシェルを介して実行されるため、適切な環境 (ステージング) が設定されていません。デフォルトは開発であり、Gemfile.lock とインストールされているものとの間に不一致があるというエラーが表示されます。

Gemfile を変更した後、展開モードでインストールしようとしています。他の場所で実行bundle installし、更新された Gemfile.lock をバージョン管理に追加します。

Gemfile に追加しました: * ソース: git@bitbucket.org:MyRepository/manager-engine.git (開発時)

Gemfile から削除しました: * ソース: git@bitbucket.org:MyRepository/manager-engine.git (マスターで)

Gemfile を変更しました: * manager からgit@bitbucket.org:MyRepository/manager-engine.git (at develop)no specified source

Gemfile:

つまり、レール環境が「運用」または「ステージング」以外の場合は、「開発」ブランチを使用してください。

デプロイ/staging.rb:

したがって、最も簡潔にするために:

通常の SSH ターミナルでは、リポジトリ gem を適切な環境にインストールするには、RAILS_ENV=staging bundle install. それ以外の場合は、実行するだけbundle installで、develop ブランチからリポジトリがインストールされます。Capistrano は実行されるだけで .xml がbundle install含まれていないためRAILS_ENV、この問題が発生しています。しかし、Capistrano は :rails_env を設定していませんか、それとも実際のシステム環境変数ではありませんか?

0 投票する
1 に答える
1369 参照

capistrano - Capistranoで別のユーザーとしてbashコマンドを実行するには?

カピストラーノで次のことを達成するにはどうすればよいですか?

次のタスクは機能しません。

execute ステートメントのコマンドは、bash スクリプトで機能します。

編集1:

私も次のことを試しました:

エラーの内容:

まだユーザーとしてコマンドを実行しているようsshです。

0 投票する
2 に答える
396 参照

ruby-on-rails - Capistrano 3 を使用して rvmrc trust コマンドを実行する方法

私は Capistrano 3 を使用しており、rvmrc trustコマンドを実行してデプロイする必要があります。

このコードを deploy.rb に追加しました

しかし、タスクは実行されません。

Capistrano 3rvmrc trustを使用して実行するには?

タスクを実行する前にデプロイ タスク フローを確認する方法はありcap deployますか?

ありがとうございました!

0 投票する
2 に答える
1058 参照

ruby-on-rails - Ruby On Rails:Capistrano 3でデプロイするときにyml構成をファイルに書き込む方法は?

私の問題は本当に単純ですが、Googleで答えが見つかりません。

Capistrano タスクを使用して、サーバー上のリモート ファイルに yml 構成を挿入したいと考えています。

Capistrano 2 と「put」コマンドでは非常に簡単でしたが、Capistrano 3 では正しい方法が見つかりません。

たとえば、これが私の yml 構成です。

"db_config" 変数を database.yml ファイルに挿入したいと思います。Capistrano 2 を使用すると、次のようになります。

しかし、Capistrano 3 では機能しなくなりました。私はこのようなことを試しました:

ただし、行末は保持されず、「;」に置き換えられます。「echo」コマンドのためです。

Capistrano 3 でこのようなことをしたことがある人はいますか?

それ以外の場合は、「database.yml.example」を使用して、展開後に直接変更します。

ありがとう!

[更新] これが私の全体の Capistrano 3 タスク コードです。

0 投票する
1 に答える
133 参照

mysql - 新しいマイグレーションが追加された capistrano 3.1 デプロイ

Ubuntu、レール 4.1、カピストラーノ 3.1

カピストラーノでRailsアプリをサーバーにデプロイしたところ、db:migrationが実行されてデータベースが構築されました。

ただし、後で新しい移行を作成し、「cap production deploy」を使用すると、元のデータベースにいくつかのテーブルがないことが示されます(新しい移行ではdb:migrationが実行されません)。そして、「cap production deploy:migrate」を使用すると、capistrano はすべての移行 (以前に実行されたものを含む) を実行するため、いくつかのテーブルが既に存在していると報告されます (もちろん、それらは以前に存在します)。

私の質問は、新しく作成された移行で db:migrate を実行するにはどうすればよいですか?

ありがとう

0 投票する
2 に答える
869 参照

capistrano - root として capistrano 3 カスタム セットアップ スクリプトを 1 回実行します。

私は capistrano 3 を完全に実行しており、非 root ユーザーとしてパスワードなしで展開しています。

私が今やろうとしているのは、upstart サービスである sudoers.d ファイルをインストールし、サーバーにいくつかの依存関係をインストールするインストール スクリプトをセットアップすることです。

production.rb ファイルにユーザーとホストを入力して実行するだけで、新しいサーバーをインストールできます。cap production setupserver

問題は、作成したセットアップ スクリプトを root として実行する必要があることです。

しかし、これは 1 回限りのことなので、単純にユーザーに root パスワードを尋ねて、サーバー上でいくつかのタスクを実行したいと思います。

を使用しているため、as :rootコマンドは機能しませんsu -c

ここに示されているように、パスワードを要求できます http://capistranorb.com/documentation/faq/how-can-i-get-capistrano-to-prompt-for-a-password/

production.rb ファイルで指定されたユーザーをオーバーライドする方法について何か提案はありますか?

求められたパスワードを渡す方法は?