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

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

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

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

Q&A

解決済

2回答

1458閲覧

gitを利用したWebアプリケーションの開発方法について

ms90

総合スコア39

Git

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

0グッド

1クリップ

投稿2018/01/10 10:27

編集2018/01/10 12:42

###前提

  • マシン

PC_A: Windows
VIRTUAL_A: PC_A内のVirtualBoxで構築されたCentOS
PC_B: Windows
VIRTUAL_B: PC_B内のVirtualBoxで構築されたCentOS
REPOSITORY_SERVER: gitのリポジトリを管理する、PC_A、B、VIRTUAL_A、Bからネットワークアクセス可能。

各VIRTUALにはapacheやmysqlなどがインストールされており開発対象のWebアプリケーションの動作ができます。

###考えている開発ルール
0. 開発者はREPOSITORY_SERVERからcloneで作業コピーをPC上に作成し、編集する。

  1. その後プログラムの動作を確認するため編集したファイルをVIRTUAL上にアップロードする。

  2. 動作確認後、commitしpushする。

###困っていること
2がどうも賢いやり方でないような気がしてなりません。
当初は1の時点で「開発者各々のブランチをpushしVIRTUAL上でpullする。動作確認できた時点でそのブランチをmasterにマージしpushする」のようなことも考えていたのですが、これだと細かい修正(変数の書き換えetc...)を確認したい度にコミットしていかなければ成り立たないのであきらめました。
何かよい方法や、参考になるWebサイト等あれば教えていただけないでしょうか。

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

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

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

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

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

miyabi-sun

2018/01/10 11:46

「VIRTUAL_B: PC_A内のVirtualBoxで構築されたCentOS」とありますが、これはPC_BのTYPOですか?
ms90

2018/01/10 12:42

ご指摘の通りです。修正しました。ありがとうございます。
miyabi-sun

2018/01/10 12:45

素早い修正対応ありがとうございます!
guest

回答2

0

VirtualBoxのディレクトリ共有機能やrsyncといった方法で仮想マシンからwindowsで編集しているファイルを参照できるようにするのは如何でしょうか。

投稿2018/01/10 10:44

tanat

総合スコア18709

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

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

ms90

2018/01/16 06:43

回答ありがとうございます。 rsyncを使って実現してみようと思います。VirtualBox自体にディレクトリの共有機能があることを始めて知りました...
tanat

2018/01/16 12:48

設定としてはRsyncの方が若干大変ですが、副作用は少ないので良い選択肢だと思います。 仮想化ソフトウェアには殆どの場合、ディレクトリ共有機能が存在していますので今後他の仮想化ソフトウェアを使う場合は選択肢に入れてみるのも良いと思います。
ms90

2018/01/16 13:14

>仮想化ソフトウェアには殆どの場合、ディレクトリ共有機能が存在していますので今後他の仮想化ソフトウェアを使う場合は選択肢に入れてみるのも良いと思います。 追加情報ありがとうございます。
guest

0

ベストアンサー

Windows + VirtualBoxですか…
なら最初はVirutalBoxに内包されているフォルダ共有機能を使い、
不満が出てきたらsambaを利用するのがオススメです。

後はおまけとして末尾でDockerの紹介をしますので、興味があれば調べてみてください。


VirtualBoxにはフォルダ共有機能が存在します。
ただし、パーミッションが常に固定になったり、
ゲストOSでファイルの変更通知を理解出来ずに
ApacheやNginXなどWebサーバが毎回キャッシュから返す不具合等も発生します。

rsyncという広く使われている2PC間のフォルダの同期ツールがありますが、
Windows環境にはデフォルトでは存在しません。
Cygwinなどを利用して導入する事は可能ですが、WindowsはLinux系とはパスの扱い等が異なるので落としてきても使えなかったりします。
従って新しくジョインした人がすぐ使える環境を構築するという点で不安が残ります。

他にはWindowsには共有フォルダという機能が存在し、
LinuxにはWindowsの共有フォルダと互換性をもたせたsambaという機能が存在します。
見ての通り動かすまでが面倒ですね、後はちょくちょくVirtualBox側がsambaを認識しなくなったりするので定期的にリロードさせてあげたりとプチ面倒だったりします。

…とまぁ、様々な選択肢はあるものの痛し痒しといったところです。

Vagrantという仮想開発環境構築ソフトウェアがありますが、何のことはないVirutalBoxのラッパーです。
実際にはプラグインを足せば様々な仮想環境ツールとセットで利用できますが、
OSSでありWindows、Mac、Linux共通で使えるVirtualBoxがデフォルトみたいな扱いになっています。
こちらのワードもセットで調べてみると比較検証が捗るかと思います。


Docker for Windows に移行するのも手です。
これの実体はHyper-Vを利用した軽量Linuxマシンで、いい感じにファイル共有してくれる機能があるので開発環境構築のパートナーとしてはかなり優れています。
私は1年程前からVagrantは封印してこちらのDockerにて開発環境を構築するようにしています。

学習コストが高く勉強が大変なのが辛い所でしょうか?
慣れない内は開発環境の構築に手間取りそうですが、
docker-compose.ymlを書く癖が付けばインフラをコードで表現する技術がつくのでオススメです。

投稿2018/01/10 12:22

編集2018/01/10 12:40
miyabi-sun

総合スコア21158

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

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

ms90

2018/01/16 06:42

いろいろな手法の紹介ありがとうございます。 >ApacheやNginXなどWebサーバが毎回キャッシュから返す不具合等も発生します。 こちらの事象が怖いため、rsyncを使ってしばらく様子をみてみたいと思います。Dockerには興味が使えるようになるために勉強始めてみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問