Help us understand the problem. What is going on with this article?

Dockerをはじめて導入してWordPressの環境を作ったよ

はじめに

以前職場(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 ならば、インストールからこちらが参考になりました。

導入方法

上記参考から、やりかたが複数あることを知りました。

  1. コマンドを使ってWordPress と DB それぞれをインストールする
  2. 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メチャメチャきらいなんだよな~。どうしようかな~。

niever66
またちょっと根無し草に逆戻りです
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした