はじめに
以前職場(win10)でDockerを入れようとして&入れてもらおうとして、
どうやらそこまでに入れていた他のアプリが邪魔をして入れられず。
おうちのPC(mac)にインストールするだけして放置。(DB使う用事でてきたらきっと…)
この度、職場で新品のPCを使うことになったので
Dockerを入れることから初めてみました。
前提
まず、wordpressをいじる用事がでてきたので、wordpressの環境構築をめざします。
Dockerのインストール
Dockerと、付随してくるdocker-composeのインストールを行います。
https://www.docker.com/get-started
にアクセス。
インストールするPCはwin 10 proなので、Docker Desktopのインストールとなります。
インストールして起動すると、ログインorアカウント作成が必要になる。(今回は新規アカウントを作成しました。)
コマントプロンプトもしくはPowerShellで
$ docker -v
Docker version 19.03.8, build xxxxxxx
$ docker-compose -v
docker-compose version 1.25.4, build xxxxxxx
と、バージョン表示でインストールを確認。
WordPressの環境構築
参考
https://www.kagoya.jp/howto/wordpress/wordpress-docker/
win10 ならば、インストールからこちらが参考になりました。
導入方法
上記参考から、やりかたが複数あることを知りました。
- コマンドを使ってWordPress と DB それぞれをインストールする
- docker-composeを使って設定から構築
※まず1の方法を試したのですが、「テーマファイルをいじることからやりたい」という用途にあわないことが判明。後に2の方法もやることになりました。
WordPressとDBそれぞれをインストールする
以前、xamp環境にダウンロードしてきたWordPress入れて。。。っていうやり方を体験したことがあったので、パッと見た感じこちらがわかりやすかったので、まずこちらを選択しました。
上記参考および、下記も参考になるかと。
https://qiita.com/maimax/items/5090fd37f9832fe3c5fd
やりかたは。。。
参考URLの内容を見てみてください。
ここまでやって気づきます。
テーマファイルどうやってイジるの?
ここまでの設定をYAMLなるものに吐き出してくれへんか??→そんなものは見つかりませんでした。
ということで、やり直しです。
docker-composeを使ってコンテナの作成
こちらも上記参考に続いて、下記にお世話になりました。
https://eeedotweb.com/blog/web/wordpress/docker-local-wordpress/#WordPress
開発用に使うディレクトリをPCに作成、その中にdocker-conmpose.ymlファイルを作成します。
↓こんな感じ。
C:\Users\user\Documents\wordpress\dev\docker-conmpose.yml
docker-conmpose.ymlにいろいろ書くのですが。。。結論として、下記ができあがったファイルです。
version: '3'
services:
wordpress:
image: wordpress:latest
container_name: wordpress
ports:
- "8000:80"
depends_on:
- db
restart: always
environment:
WORDPRESS_DB_HOST: "db:3306"
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: password
volumes:
- ./themes/themename:/var/www/html/wp-content/themes/themename
db: # WORDPRESS_DB_HOSTと一致させる
image: mysql:5.7 # バージョンに注意!
container_name: corp_wp_db
restart: always
volumes:
- db-data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: wordpress
MYSQL_USER: wp_user
MYSQL_PASSWORD: password
TZ: JST-9
volumes:
db-data:
driver: local
ファイルを記載したら、]
$ cd C:\Users\user\Documents\wordpress\dev // docker-conmpose.ymlの場所
$ docker-compose up -d
→ブラウザで https://localhost:8000
でwordpressが起動。
テーマファイルの作成
PCの下記場所にテーマのファイルを設置すると、dockerで立ち上げたlocalhostのwordpressでテーマが選択できるようになります。
\Users\user\Documents\wordpress\dev
├ docker-conmpose.yml
└ themes
└ themename
└ テーマファイル一式
注意
volumeのパスを間違って下記にしていたら、mySQLが起動しないという間違いを犯しました。
volumes:
- db-data:/var/lib/mysql/data
また、おしゃれに、enviromentを使わず、.envファイルを.ymlと同じ場所に作成、内容を記載して
wordpress:
env_file: .env
db:
env_file: .env
という記載をしていたのですが、これではwordpressのDB接続エラーが発生しました。
.htaccessの追加(2020/5/11追記)
ここまででいじりはじめて、サイト側のプレビューしようとしたら、
topページ以外が
The requested URL was not found on this server.
エラーとなりました。
…そうなんですね………。
ということで、追加です。
- .htaccessを作成
\Users\user\Documents\wordpress\dev
├ docker-conmpose.yml
├ .htaccess ← 追加
└ themes
- .htaccessの中身
手元にあった(本番サーバーに使ってた)のをそのまま。内容省略
- docker-conmpose.ymlの修正
wordpress:
volumes:
- .htaccess:/var/www/html/.htaccess ← 追記
- ./themes:/var/www/html/wp-content/themes
利用したdocker・docker-composeのコマンド
docker-compose
docker-composeはdocker-compose.ymlの設置場所で実行。 ⇒ $ cd docker-compose.ymlの設置場所
$ docker-compose up -d
→ docker-compose.ymlをもとに、コンテナの作成・更新・起動
$ docker-compose ps
→ 起動しているコンテナ一覧
docker
$ docker ps
→ 起動しているコンテナ一覧
$ docker ps -a
→ 停止中も含めたコンテナ一覧
$ docker stop コンテナID
→ コンテナの停止
$ docker start コンテナID
→ コンテナの起動
$ docker logs コンテナID
→ コンテナのログの確認
$ docker rm 停止中のコンテナID
→ コンテナの削除
$ docker rm $(docker ps -aq)
→ 停止中のコンテナ全削除
$ docker volume ls
→ ボリュームの一覧
$ docker volume prune
→ 利用されていないボリュームの削除
$ docker images
→ イメージの一覧
$ docker rmi イメージレポジトリ もしくは イメージID
→ イメージの削除(レポジトリ:タグ の形での指定も可)
WordPressメチャメチャきらいなんだよな~。どうしようかな~。