# Docker による環境構築
掲示板開発では、下記のシステム構成( 複合的な動作確認より )で開発を行います。

ここでは、ポートフォリオ制作と同様に Docker を用いて開発環境を構築していきます。
環境構築編:複合的な動作確認#ファイルの作成 が完了し、インストールされた Docker がが正常に動くことが確認できている前提で、掲示板開発用の環境構築を行なっていきます。
# プロジェクトの作成
任意のディレクトリ(前章のポートフォリオ作成編では /Users/tsuser/github/ts-userとしていました)に移動し、プロジェクトとなるフォルダを任意の名前で作成します。
ここでは、web-message-boardというフォルダを作成しています。
# 必要なファイルの作成
プロジェクトのルートに docker-compose.yml と ~~/phpディレクトリを作成し、その中に ~~/php/Dockerfile を作成します。
~~/docker-compose.yml
version: '3.9'
services:
php:
image: php_for_bulletin_board
working_dir: /home/app
build:
context: ./
dockerfile: ./php/Dockerfile
tty: true
stdin_open: true
stop_signal: SIGKILL
restart: unless-stopped
environment:
DB_HOST: 'db'
DB_PORT: '3306'
DB_NAME: 'message_board'
DB_USER: 'user'
DB_PASS: 'password123456'
ports:
- ${PORT:-8080}:80
volumes:
- .:/home/app
db:
image: mysql:8.0
restart: unless-stopped
command: --default-authentication-plugin=mysql_native_password
environment:
MYSQL_ROOT_PASSWORD: password123456
MYSQL_DATABASE: message_board
MYSQL_USER: user
MYSQL_PASSWORD: password123456
ports:
- 3306
volumes:
- db-data:/var/lib/mysql
myadmin:
image: phpmyadmin/phpmyadmin:5.1.1
environment:
PMA_ARBITRARY: 1
PMA_HOST: db
PMA_PORT: 3306
PMA_USER: user
PMA_PASSWORD: password123456
depends_on:
- db
restart: unless-stopped
ports:
- ${DB_ADMIN_PORT:-8081}:80
volumes:
db-data:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
~~/php/Dockerfile
FROM php:8.1.2-apache
RUN apt-get update
RUN docker-php-ext-install pdo_mysql
# Install composer
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
RUN php composer-setup.php --install-dir=/usr/local/bin --filename=composer
RUN php -r "unlink('composer-setup.php');"
ENV APACHE_DOCUMENT_ROOT /home/app/public
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf
RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
2
3
4
5
6
7
8
9
10
11
12
13
~~/public ディレクトリを作成します。
その中に index.php を作成し、以下の内容を記述します。
~~/public/index.php
<?php
phpinfo();
2
現在のディレクトリ構造は以下のようになります。
.
├── docker-compose.yml
├── php
│ └── Dockerfile
└── public
└── index.php
2
3
4
5
6
# Docker コンテナを起動する
Docker Desktop が起動していることを確認してください。
ターミナルで、プロジェクトのルートに移動し、以下のコマンド(docker compose up -d のみ)を入力します。 初回実行時は時間がかかります。
$ docker compose up -d
Creating network "xxxxxxxxxxx" with the default driver
Creating volume "xxxxxxxxxx" with default driver
Creating xxxxxxxxx_db_1 ... done
Creating xxxxxxxxx_php_1 ... done
Creating xxxxxxxxx_myadmin_1 ... done
2
3
4
5
6
# ページにアクセスする
http://localhost:8080/ (opens new window) にアクセスして確認します。 正常に起動している場合、以下の画面が表示されます。
データベース管理画面(phpMyAdmin)にもアクセスし、適宜設定を行います。 http://localhost:8081/ (opens new window)
phpMyAdmin については、次セクションのデータベースを準備する にて扱います。
ここまで完了すれば、実践編:掲示板アプリの開発に取り掛かることができます。