docker-compose で Apache + PHP + mysql + phpmyadmin 環境を作る

この記事は最終更新から1年以上経過しています。

タイトル通りです。
編集中にファイルが逝って、3回目の書き直しです。最初は前文面白いこと書いてたんですけど、めんどくさいので本題に移ります。

構築する

docker-compose で以下の環境を構築する
イメージは今回は公式イメージを利用。

  • php:7.4.16-apache
  • mysql:5.7
  • phpmyadmin/phpmyadmin

docker-compose.ymlを書く

書いた

1
2
3
4
5
6
7
.
├ school_workspace/
├ nnn_workspace/
├ nekozuki_workspace/
├ docker-compose.yml
├ php.ini
└ httpd.conf
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
version: '3.5'

services:
php:
image: php:7.4.16-apache
volumes:
- ./php.ini:/usr/local/etc/php/php.ini
- ./httpd.conf:/usr/local/apache2/conf/httpd.conf
- .:/var/www/html
ports:
- 8080:80
mysql:
image: mysql:5.7
volumes:
- ./mysql:/var/lib/mysql
environment:
- ぱすわーどとか
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
- ぱすわーどとか
links:
- mysql
ports:
- 4040:80
volumes:
- ./phpmyadmin/sessions:/sessions

はい。

動かす

1
$ docker-compose up

動いた!けど。

1
2
3
4
5
6
7
8
9
.
├ school_workspace/
├ nnn_workspace/
├ nekozuki_workspace/
├ mysql/
├ phpmyadmin/
├ docker-compose.yml
├ php.ini
└ httpd.conf

色々邪魔だなぁ。

サブディレクトリから起動する

ディレクトリこうしてみる。合わせてdocker-compose.ymlも修正。

1
2
3
4
5
6
7
8
.
├ school_workspace/
├ nnn_workspace/
├ nekozuki_workspace/
└ docker/
├ docker-compose.yml
├ php.ini
└ httpd.conf
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '3.5'

services:
php:
image: php:7.4.16-apache
volumes:
- ./php.ini:/usr/local/etc/php/php.ini
- ./httpd.conf:/usr/local/apache2/conf/httpd.conf
- ../:/var/www/html
ports:
- 8080:80
mysql:

phpmyadmin:

起動。

1
$ docker-compose -f ./docker/docker-compose.yml up

わーい。rootも綺麗。

1
2
3
4
5
6
7
8
9
10
.
├ school_workspace/
├ nnn_workspace/
├ nekozuki_workspace/
└ docker/
├ mysql/
├ phpmyadmin/
├ docker-compose.yml
├ php.ini
└ httpd.conf

でも起動時のコマンドが長いな…

.shから起動する

1
2
3
4
5
6
7
8
9
10
11
.
├ school_workspace/
├ nnn_workspace/
├ nekozuki_workspace/
├ docker/
│ ├ mysql/
│ ├ phpmyadmin/
│ ├ docker-compose.yml
│ ├ php.ini
│ └ httpd.conf
└ start_php.sh
1
2
3
#!/bin/sh

docker-compose -f ./docker/docker-compose.yml up
1
$ ./start_php.sh

できたー!

あとがき

できるだけdockerに慣れ親しんで使えるようになりたいので、今後も色々触っていきたいです

参考文献

記事をシェアする
記事を書いた人ねこづきあゆむ
Webエンジニア。Misskeyサーバー「みすほわいと」の管理人。
このブログでは、適当に日々の思いつきを書き連ねています。