kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

DockerでLAMP

Dockerを学ぶ上で、まず最初に実践的なことといえば、LAMP環境を作る。だと思います。

WEBアプリエンジニアとして毎日関わっている環境です。実際につかう環境という意味で、今回はLinux、Nginx、MySQLPHPを作成します。

もうLAMPって言わないのかな。

Dockerで複数のコンテナを連携して作成する場合、docker-compose を利用します。

docker-compose

Compose とは、複数のコンテナを使う Docker アプリケーションを、定義・実行するツールです。

composeは「docker-compose.yml」に定義を記述します。

コマンドは「docker-compose」で操作していきます。

やってみた内容

参考にしたサイトです。

tech.recruit-mp.co.jp

今回は参考にさせてもらったサイトのままやれば、期待通りの構成になりましたので、あまり書くことがなさそうですね。

ありがたいです。

今回は詰まったことやカスタムしようと思ったことを書いて見ます。

使用するコマンド

コマンドで「docker-compose up -d」にて、起動します。最初に起動した際に、buildを実行してDockerfileの記述通りのイメージを作成します。なので最初の起動は時間がかかります。

止める場合は「docker-compose stop」にて停止させます。

再度起動した際には、すでにbuildされた内容を使用するため、ものすごく早く起動されるようになっています。

なにか設定を変えた内容を反映させる場合は、再度buildをする必要があります。

PHPのエクステンションを追加したりとかした場合は、「docker-compose build」をしましょう。

コマンド 内容
docker-compose up -d 起動 「-d」でバックグランド実行
docker-compose stop 停止
docker-compose build コンパイル

設定ファイルについて

php.iniの内容をカスタムしたい場合に、設定の変更点のみ記述することで指定の部分のみ上書きされるようになっています。

すべて持ってくる必要はないため、設定のみ記述しましょう。

本当に設定が反映されているかどうか確認したい場合は、ファイル自体をcatなどで確認するのがいいでしょう。

不安なことはひとつずつ潰した方が使いたいように使えるようになると思います。

不安な場合にコンテナの中に入って確認

実際に設定ファイルが反映されているかどうかコンテナに入って見たい場合はオプションの「-it」をつけて動作させることで入力できるようにログインできるので試してみてください。

「docker ps」で内容を確認し、コンテナIDを確認する。

「docker run -it {image} /bin/bash

exitで抜けることができます。本来のDockerの「exit」は終了ですが、ログインした状態では抜ける状態になります。

基本的には設定ファイルを反映することで環境を作ることが正しいと思うので、確認だけのためにしたほうがいいです。

なにができるようになったか

WEBアプリ開発ができるところまで来たと思います。

かなり期待していた内容まで進めたと思っています。

やりたいこととして、PHPバージョンを変更して動作するかの確認がかなり簡単にできるようになったと思います。

そしてnginxをH2Oに変更したりもできるようになったのかと思います。

まだやってみてないので、できるかどうか不明ですが、できそうな気がしてきました。

次は自分のプロジェクトにあった内容で実際に設定を作成してみます。

今回は参考になったサイトがあったため、スムーズにいけましたが、ドキュメントを見ただけでそこまでいけるか不安です。

自分でやりたい通りに作ってみて、ようやく身になったと言えると思いますので、もう少し頑張ります。