下記をインストールしておくこと
- VirtualBox
- Vagrant
- Git
※プロキシを介してVagrantを使う場合はシステム環境変数に下記を追加すること
- HTTP_PROXY : http://<プロキシホスト名>:<プロキシポート>
- HTTPS_PROXY : http://<プロキシホスト名>:<プロキシポート>
vagrant plugin install vagrant-vbguest
を実行する。
vagrant plugin uninstall vagrant-proxyconf
を実行する。
git clone [email protected]:kenta0629/vagrant-ubuntu-for-docker.git
mkdir src
- プロキシを介している場合、下記のようにプロキシ情報を設定してください。
- プロキシを介していない場合、プロキシのプラグインをインストールしていなければ修正の必要ないです。プラグインをインストールしている場合は「config.proxy.enabled = false」にしてください。
...
if Vagrant.has_plugin?("vagrant-proxyconf")
config.proxy.enabled = true # => true; all applications enabled, false; all applications disabled
config.proxy.http = "http://<プロキシホスト名>:<プロキシポート>"
config.proxy.https = "http://<プロキシホスト名>:<プロキシポート>"
config.proxy.no_proxy = "localhost,127.0.0.1"
end
...
特に設定する必要はありませんが、
ポートフォワードを設定したい、IPアドレスを変更したい場合は想定する環境に合わせて設定してください。
また、Windowsで起動することを想定しているためEncoding.default_external = 'SJIS'
と設定しています。エンコードでエラーが発生する場合はコメントアウトなり対応するエンコードに設定してください。
Vagrantfileの配置されているディレクトリでvagrant up
で起動します。
※初回起動時はprovisionが起動されdocker,docker-compose等がインストールされます。
vagrant起動時にコンテナも起動させるように設定しています。 以下のログが流れたら完了
==> default: Creating docker-for-laravel_db_1 ...
Creating docker-for-laravel_db_1 ... done
==> default: Creating docker-for-laravel_app_1 ...
Creating docker-for-laravel_app_1 ... done
==> default: Creating docker-for-laravel_web_1 ...
Creating docker-for-laravel_web_1 ... done
上記までの処理で起動が失敗した場合は修正後に以下コマンド入力
vagrant provision
vagrant ssh
Vagrantfileで設定したIP(デフォルト: 192.168.33.10)へSSHでアクセスできます。 (ID / PW : vagrant / vagrant)
docker ps
docker-for-laravel_db_1, docker-for-laravel_app_1, docker-for-laravel_web_1が表示されれば正常です。
docker exec -it {appコンテナID} bash
Laravelのインストールをするため、コンテナにログインします。
composer global require laravel/installer
composer create-project --prefer-dist laravel/laravel src
※それぞれ1行ずつ流してください
cd src
mv .[^\.]* ../
rmdir src
現在のままだと/src/srcの状態になっていて共有できないので、/ src配下にインストールしたファイル、ディレクトリを移動します。 ※要修正箇所 ※それぞれ1行ずつ流してください
URLに192.168.33.10を入力してLaravelのWelcomページが表示されたら完了です。
vagrant halt
Vagrantfileの配置されているディレクトリで停止します。