実行環境
macOS Ventura13.3
M2 Macbook Air
Docker Desktop Version4.19.0をインストール済み
Docker Composeをインストール
Docker Desktopまずは公式からダウンロードしてインストール済みという想定なので、ない場合はインストールしておいてください。
次に、複数のコンテナを管理するためにDocker Composeをインストールします。
以下をターミナルへ打ち込んでください。
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
プロジェクトフォルダを作る
Wordpressをインストールしたり、開発をする「場」になるプロジェクトフォルダを新規作成します。
その中に、docker-compose.ymlというファイルを新規作成して、開いたら以下のように書いてください。
version: "3.6"
services:
wordpress:
image: wordpress:latest
container_name: wordpress
volumes:
- ./wordpress:/var/www/html
environment:
- WORDPRESS_DB_NAME=wordpress
- WORDPRESS_TABLE_PREFIX=wp_
- WORDPRESS_DB_HOST=db
- WORDPRESS_DB_USER=root
- WORDPRESS_DB_PASSWORD=password
depends_on:
- db
- phpmyadmin
restart: always
ports:
- 8080:80
db:
image: mariadb:latest
container_name: db
volumes:
- db_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_USER=root
- MYSQL_PASSWORD=password
- MYSQL_DATABASE=wordpress
restart: always
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin:latest
container_name: phpmyadmin
restart: always
ports:
- 8180:80
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: password
volumes:
db_data:
コンテナを立ち上げる
先ほどまではどのディレクトリでコマンドを打っても問題ないのですが、今度はさっき作ったdocker-compose.ymlのあるディレクトリへcdしてから以下のコマンドを打ち込んでください。
$ docker-compose up -d
wordpress
ブラウザでlocalhost:8080/にアクセスすると、WordPressのインストール画面が表示されます。WordPressのインストール画面に従って、インストール情報を入力してください。
ここで、一般的な使い方であるルートにインストールしたい場合は「WordPressのアドレス (URL)」と「サイトアドレス (URL)」は、http://localhost:8080です。
もしも他のDockerコンテナや、MAMP,XAMPのようなローカルサーバを立ち上げるソフトを使っていると、localhost:8080がすでに使われていて、コンテナが立ち上がらないという事象が発生します。
そんな時は、docker-compose.ymlのportsのポート番号を変更して、ポート番号が被らないようにすれば解決できます。
version: "3.6"
services:
wordpress:
image: wordpress:latest
container_name: wordpress
volumes:
- ./wordpress:/var/www/html
environment:
- WORDPRESS_DB_NAME=wordpress
- WORDPRESS_TABLE_PREFIX=wp_
- WORDPRESS_DB_HOST=db
- WORDPRESS_DB_USER=root
- WORDPRESS_DB_PASSWORD=password
depends_on:
- db
- phpmyadmin
restart: always
ports:
- 8080:80 ←←← これです
データベースや、phpMyAdminも同様です。ポート被りでコンテナが立ち上がらない時は、portと書かれているところを変更すればいけます。
まぁ、そもそも体は一つしかないので、立ち上げておくコンテナは常に一つ、ローカルサーバを立ち上げるソフトも使わない、を徹底しておけば防げる事象なのですが。。。
最後に、MySQLのホスト名はdocker-compose.ymlにある通り、「db」、ユーザー名は「root」、パスワードは「password」になります。