docker compseでlamp環境を構築してみた

プログラミング

はじめに

LAMP環境は以下4つを使ったWEBアプリ環境のことです。

  • Linux
  • Apache
  • MySQL
  • PHP

今回はMySQLではなくMariaDBを使ってLAMP環境をdocker-composeで構築してみようと思います。
また、DBの状況を手軽に見れるようにphpmyadminのコンテナも一緒に起動させます。

今までdockerはネットで調べたり、Chat GPTに聞いて出てきたものをそのまま使うことが多かったのですが、極力それらには頼らず組んでみました。

今回作成したコードは以下リポジトリにあります。

GitHub - nakajima97/lamp-on-docker at v1.0
docker composeの学習のためにlamp環境を構築してみた. Contribute to nakajima97/lamp-on-docker development by creating an account on GitHub...

やってみた

以下、今回作成した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接続しているのだが、果たしてこれで良いのか?
ローカルの開発用と考えたら問題ない気もするが…

Follow me!

コメント

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