背景
macでもwindowsでも同じ環境でdockerを使ってLaravelの
開発ができる環境を作りたかったのでトライ。疲れた。。。
##Vagrantのインストール
ここからインストール
##Virtualboxのインストール
ここからインストール
##CentOS7のboxを追加
# vagrant box add [vagrantのbox名] [boxのURL]
# boxのURLはhttp://www.vagrantbox.es/を参照
# 時間がかかるのでお茶でも飲みながら待ちます
$ vagrant box add https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box
# ↓色々でてきて、最終的にこんなのが出ていればOK
# box: Successfully added box 'centos7' (v0) for 'virtualbox'!
追加したboxで仮想環境構築
# vagrantを使うためのディレクトリを作成
# 作成する場所はどこでもOK↓下では~/VM/に作成
$ mkdir ~/VM # ホームディレクトリにVMフォルダを作成
$ mkdir ~/VM/centos7 # 上で作ったVMフォルダの中にcentos7ディレクトリを作成
$ cd ~/VM/centos7 # 上で作ったディレクトリに移動
# vagrant init [vagrant box addで追加したvagrantのbox名]
$ vagrant init centos7 # Vagrantfileを生成
Vagrantfile修正
vi Vagrantfile
- # config.vm.network "private_network", ip: "192.168.33.10"
+ config.vm.network "private_network", ip: "192.168.33.10"
- # config.vm.synced_folder "../data", "/vagrant_data"
+ config.vm.synced_folder "./sample", "/home/vagrant/sample"
仮想マシンと同期するディレクトリ作成
$ mkdir ~/VM/centos7/sample
仮想マシン起動
$ vagrant up # 仮想マシン起動
$ vagrant ssh # 仮想マシンにログイン
terminalの左側が↓こうなってればOK
[vagrant@localhost ~]$
windowsの方はデフォルトではsshが使用できないので、
teratermをインストール + vagrant-teratermのプラグインをインストールすると簡単だと思います。
- teratermのインストール
- vagrant-teratermプラグインのインストール
$ vagrant plugin install vagrant-teraterm
上の作業ができたら、vagrant ssh
の代わりにvagrant teraterm
をコマンドプロンプトで実行
teratermが起動して、画面の左側が[vagrant@localhost ~]$
になってればOK
dockerの環境構築
ここから基本的に仮想マシンでの作業
リポジトリの追加
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dockerのインストール
$ sudo yum install docker-ce-18.03.1.ce-1.el7.centos # バージョンを指定してインストール
$ sudo systemctl start docker # dockerを起動
$ sudo systemctl enable docker # 仮想マシン起動時にdockerも自動起動
docker-composeのインストール
$ sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
# sudo しなくてもdocker使えるように現在のユーザーをdockerグループに入れる
$ sudo usermod -aG docker $USER
設定を反映させる
$ exit # 仮想マシンからログアウト
$ vagrant reload # 仮想マシンを再起動
$ vagrant ssh # 仮想マシンにログイン
Laradocの導入
# まずはgitが必要
$ sudo yum install git # バージョンが古いけど気にしない
dockerイメージ(laradoc)の取得
$ git clone https://github.com/LaraDock/laradock.git
$ cd laradock
$ cp env-example .env
$ docker-compose up -d nginx mysql # めっちゃ時間かかる
コンテナへログイン
docker exec -it laradock_workspace_1 /bin/bash
Laravelのインストール
$ composer create-project --prefer-dist laravel/laravel sample "5.5.*"
$ exit # コンテナからログアウト
nginxの設定変更(2箇所)
$ vi /home/vagrant/laradock/nginx/sites/default.conf
- server_name localhost;
+ server_name 192.168.33.10; # Vagrantfileに設定したIP
- root /var/www/public;
+ root /var/www/sample/public;
設定を反映させる
$ docker-compose stop
$ exit # 仮想マシンからログアウト
$ chmod -R 777 ~/VM/centos7/sample/storage/
$ vagrant reload
dockerを起動
$ vagrant ssh
$ cd laradock
$ docker-compose up -d nginx
192.168.33.10にアクセスしてLaravelが表示されればOK!!
あとは自分のパソコンの/VM/centos7/sample/の中をいじって開発を進めましょう!!