はじめに
LAMP環境は以下4つを使ったWEBアプリ環境のことです。
- Linux
- Apache
- MySQL
- PHP
今回はMySQLではなくMariaDBを使ってLAMP環境をdocker-composeで構築してみようと思います。
また、DBの状況を手軽に見れるようにphpmyadminのコンテナも一緒に起動させます。
今までdockerはネットで調べたり、Chat GPTに聞いて出てきたものをそのまま使うことが多かったのですが、極力それらには頼らず組んでみました。
今回作成したコードは以下リポジトリにあります。
やってみた
以下、今回作成したdocker-compose.ymlです。
version: '3'
services:
db:
image: mariadb:11.1.2
volumes:
- ./data/mariadb:/var/lib/mysql
restart: always
environment:
- MARIADB_USER=${MARIADB_USER}
- MARIADB_PASSWORD=${MARIADB_PASSWORD}
- MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
apache:
image: php:8.2.12RC1-apache
depends_on:
- db
ports:
- 80:80
- 443:443
volumes:
- ./data/php/htdocs:/var/www/html
phpmyadmin:
image: phpmyadmin:5.2.1
depends_on:
- db
environment:
- PMA_ARBITRARY=1
- PMA_HOSTS=db
- PMA_USER=root
- PMA_PASSWORD=${MARIADB_ROOT_PASSWORD}
ports:
- 3001:80
バージョンはlatest使うのが嫌だったので今公開されているものの中からなるべく最新のやつを使うようにしました。
動作確認
./data/php/htdocs にphpinfo.phpを以下で作成。
<?php
phpinfo();
ブラウザで`localhost/phpinfo.php`にアクセスして以下が表示されることを確認。
これでPHPとApacheが起動していることを確認できました。

次に`localhost:3001`にアクセス。
phpmyadminでmariadbにあるデータベースを確認できました。
exampleはここにアクセスする前にあらかじめ作成したものでこれも見れているので問題なさそうです。

感想
自力で組んでいると何となくで済ましていたところがはっきりしてきたので勉強になります。
versionとservicesは今まで一切気にしたことがなかったのですが、今回自力で組むことでこれらに対しての解像度が上がりました。
ネットにコピペで動くものがたくさんあったり、chat gptに聞けば答えを教えてくれる世の中ですが、
自力で組むことも勉強のためには大切だなと思いました。
rootユーザ使ってphpmyadmin接続しているのだが、果たしてこれで良いのか?
ローカルの開発用と考えたら問題ない気もするが…
コメント