質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Chef

ChefはRuby等で書かれた構成管理ツールです。 システム構築や、運用作業を自動化してくれます。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

Q&A

解決済

1回答

1731閲覧

vagrantでrailsの開発環境を構築する時のディレクトリ構成とgitにどこまで含めるかについて

momoyuri

総合スコア35

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Chef

ChefはRuby等で書かれた構成管理ツールです。 システム構築や、運用作業を自動化してくれます。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

0グッド

0クリップ

投稿2016/09/02 07:26

###前提
Vagrantにitamaeでrailsの環境構築をしております。
ディレクトリの構成は下記のような感じです。

project

1|- .git 2|- Vagrantfile 3|- cookbooks(itamaeのレシピ) 4|- rails_root(実際のrailsのプロジェクトディレクトリ) 5 |- app 6 |- Capfile 7 |- Gemfile 8 |- などrailsの中身

Vagrantfileや、itamaeのレシピなども、gitの管理下に入れております。

###発生している問題
上記の構成で、Capistranoで本番環境に反映を考えているのですが、rails_rootをデプロイする時に「assets:precompile」や「unicorn」の起動で失敗してしまいます。

原因は、サブディレクトリにあるRailsをデプロイする場合に、「capistrano/rails」と「capistrano3/unicorn」がサブディレクトリに対応していないため、デプロイ時にエラーが発生してしまうようです。
http://qiita.com/k-yamada@github/items/a831ba87668c2e71dc70

###質問
0. itamaeやchefなどで環境を構築した場合、それらのレシピと、実際のプログラムコードは同じgitのリポジトリで管理をしない方が良いのでしょうか?
0. 皆さんはどのようなディレクトリ構成にしているか、ご教授頂けませんでしょうか

お忙しい中、大変恐縮ではございますが
お知恵を拝借出来ますと幸いでございます。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

私はRubyに関しては素人なのであまり偉そうな事は言えませんが…
まだ回答がついていないようなので、一般的な所を中心に考えてみたいと思います。

実際のプログラムコードは同じgitのリポジトリで管理をしない方が良いのでしょうか?

そんなことはありません。
デプロイの足しになる細かなスクリプトファイルやプロビジョン用のファイルがプロジェクト内に含まれている事はよくあります。
特にプロビジョンファイルはそのサーバーの動作要件にもなりますし。

実際にはプロジェクトが何をする為のモノなのかという事で、
設計者が相応しいと感じたか否かで入ったり入らなかったりします。

Capfile、Gemfileはプロジェクトの要件を説明出来るものなのでは?
これらはプロジェクトルートにあってほしいと思います。

この際、思い切って全てプロジェクトルートに設置しみてはどうでしょうか?
逆に開発環境的なものを深くに移動してみては?

|- .git |- app |- Capfile |- Gemfile |- などrailsの中身 |- development |- Vagrantfile |- cookbooks(itamaeのレシピ)

このdevelopmentフォルダがノイズになってRailsの動作の邪魔になるようなら、
プロジェクトを分けるしか無いと思いますが、そんなフォルダ1個増えたくらいで動作しないことはないと思うので大丈夫でしょう。
デプロイの足しになる簡単なサブコマンド的なもの(binやtasksみたいなフォルダはよく作ると思いますし)

GitHubには沢山のRailsのプロジェクトがあるかと思いますので、
探して見つかったならディレクトリ構造を盗み見たりしてみてはどうでしょうか?

投稿2016/09/02 15:29

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

momoyuri

2016/09/06 03:01

ご回答ありがとうございました。 itamaeのレシピの中にrailsの新規作成まで入れていたので、ご提案頂いた構成は難しいので、今回はgitのリポジトリを環境設定のものと、実際のプログラムとで分けて管理してみる方向に致しました。 また、良い構成が見つかったら追記しようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問