Laravel5の初期画面が出るようにするまでのDockerメモ

スポンサーリンク

最近、Dockerを触ってみたかったのですがいまいちDockerがよく分かってなかったのでLaravel5の初期画面を出せるところまでやってみました。

環境

  • Windows10
  • Docker Toolbox(Docker For Windowsではないです)

前提

特定のディレクトリにLaravel5のプロジェクトが存在していることを前提としています。(インストール後の初期状態が良し)
また、まだわかってないことが多いので関係ないことやってると思います。

今回利用したのは、https://github.com/geshan/docker-laravel-alpinehttps://github.com/danielmccoy/alpine-nginx-php-laravelです。

初心者がよく間違えそうなこと

これはすでに自分がdockerに多少の知識を持っていたので正しく進めましたが、おそらく初心者の場合ここでよくわからなくなるんじゃないかと思ったので一応。

dockerコマンドとdocker-machineコマンドは何が違うの

簡単に言えば、docker-machineコマンドはvagrantコマンドみたいにwindows側から打てるコマンドのことです。
そしてdockerコマンドはその仮想環境上で打てるコマンドです。

なので、dockerコマンドを打つためには仮想環境に入る必要があります。→エイリアスっぽいので入らなくても打てるようになってるみたいです
これは先にdocker-machineが起動している必要があるのですが、

docker-machine ssh default

で、対象の仮想環境に入ることができます。

Kitematicを起動しておく

Kitematicを起動すると、dockerが入った仮想環境が起動されるので、先に立ち上げておきます。
また、起動したらipを調べておきます。

コマンドプロンプトを開いてdocker-machine ipでipを知っておきます。

> docker-machine ip
192.168.99.100

dockerイメージの取得

先にgeshan/laravel-alpine:php7のイメージを取得しておきます。ちなみに、このlaravel-alpineイメージはnginxも起動していないので実際のところ、composerを実行したりとか、artisanコマンドを実行するとかしかできないです。

docker pull geshan/laravel-alpine:php7

dockerイメージを利用して起動

今回は、初期状態は出来上がっていたlaravel5プロジェクトだったのですが、色々忘れてたのでgeshan/laravel-alpineを利用してコマンドを叩きました。
-vオプションはディレクトリのマウントのオプションです。初期状態で、仮想環境がCドライブを/cでマウントしてくれているのでそれを利用します。
指定するディレクトリは/var/wwwですが、このあたりはリポジトリの説明に書いてあります。

> docker run -v /c/Users/fagai/product/laravel5:/var/www geshan/laravel-alpine:php7 "composer install --prefer-dist"
> docker run -v /c/Users/fagai/product/laravel5:/var/www geshan/laravel-alpine:php7 "php artisan key:generate"

これでとりあえず手前の処理が終わったので、実際にサーバーを立ててみます。
サーバーのイメージはdanielmccoy/alpine-nginx-php-laravelを利用しました。

> docker run -p 8000:80 -v /c/Users/fagai/product/laravel5:/var/www -t danielmccoy/alpine-nginx-php-laravel

これでサーバーが起動するので、確認してみましょう。
なお、-pオプションはポートフォワーディングの設定で、先にホスト側のポートを指定し、次にコンテナ側のポートを指定します。

これであとは先に調べていたipがあると思うので、それで立ち上げてみます。
私と同じ状況であれば、http://192.168.99.100:8000/です。

最後に

以上ですね。意外とさくっと用意できたので可能性を感じ始めました。
dockerfileも対象のリポジトリに存在するので、自分自身でdockerfileを作るときも簡単なのではと感じます。

コメント

  1. kytiken より:

    初心者のうちはkitematicのGUIでとりあえず使ってみて、慣れてきたらdocker-machineなどのコマンドを覚えていくほうがいいかもしれません。
    この記事ではkitematicはdockerホストの起動にしか使ってないようですが、ポートとマウントの設定をGUIで設定できると思います。

    macだと
    $ docker-machine start default
    $ docker-machine env default
    $ eval “$(docker-machine env default)”
    とすればsshログインしなくてもdockerコマンドが使えるようになるのですが、
    windowsの場合は違うんでしょうか?

    • fagai より:

      GUIで最初やっていたわけなのですが、どうもコンテナによっては起動時に失敗してしまうようなので、仕方なくコマンドを使っています。

      どうやらdockerコマンドは最初使えなかった気がしたのですが問題なく使えそうですね、evalはwindowsだと叩けませんけど。

タイトルとURLをコピーしました