0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

初心者でもDockerでWordPressの環境構築ができた!

Posted at

##はじめに
この記事はDockerを軽く勉強しただけの駆け出しエンジニアが、
Docker、WordPressの勉強のために環境構築をする過程・反省を記した備忘録です。

よって、詳しい説明や深い考察などはなく、ただこの経験を忘れたくないなと思い記録に残したものです。
業界でいうと未経験者なので、さほど難しい言葉もないと思います。同じく初学者である方々への励みにもなればなと思います。(Docker用語?は登場します。)

ちなみにローカルで勉強用にWordPressを使うだけなら環境構築は Local by Flywheel と検索するとやり方が出てくると思いますが、ソフトウェアをインストールして軽く設定をしてもらうだけですぐにできます。

あくまで私はDockerの勉強も兼ねてやってみようと思った次第です。

##経緯
新たにWordPressを学び始めるにあたって、Dockerも絶賛勉強中だったため
せっかくならと得た知識をアウトプットする意味でも環境構築をDockerでやってみようと考えました。

ちなみに、何をもとにDockerを学んでいるかというと、
Udemyの「ゼロからはじめる Dockerによるアプリケーション実行環境構築」というコースです。これを現在40%ほど終わらせたところです。(決してステマなどではありません。)

一応リンクも貼っておきます。(ステマではありません。)

##まずは自力で頑張ってみる(失敗例)
まずは作業用のディレクトリを作る(名前はなんでもよい)

$ mkdir WordPress/WordPress-lecture

次に、nginxでサーバーを立ち上げるレッスンで使った、バインドマウントを設定してWordPressイメージのコンテナを立ち上げるコードを実行しようとした(macの場合のコード)

WordPress-lecture $ docker run --name wordpress-lecture:ver1 \
-v /Users/(PCのユーザー名)/WordPress/WordPress-lecture:/usr/share/wordpress/html:ro -d -p 8081:80 wordpress

Dockerコンテナのタグの指定はここではできないためエラー。:ver1の部分を消して再度実行

するとエラーは起きずコンテナは立ち上がったが肝心のサーバーがないため、もちろんブラウザで localhost:8081 にアクセスしてもページは表示されず。。。

コンテナにnginxのイメージを追加すればいいのか?それともnginxのサーバーを立ち上げてそこにWordPressのイメージを追加したほうがいいのか?Apacheじゃなきゃダメなのか?と考えて参考になるものがないかネットを漁ってみたが、学んだことをもう一度調べ直すのにもここまでそれなりの時間を要していたため、早くWordPressの勉強に取り掛かりたかったので結局最後は先輩方の知恵をお借りすることに。。。

#完成されたコードを使いWordPressの環境を整える
Qiitaで探すと何人かの方々が既に試していらっしゃったのでそのコードを拝借することに

参考にさせていただいた記事
https://qiita.com/qpSHiNqp/items/48815ed90bd474064708
https://qiita.com/t20190127/items/3abb7c17acdc8543c8ad
https://qiita.com/engineer_ikuzou/items/07ff7bd7c9eabf0b3d6b

・①の記事のdocker-compose.ymlの内容を丸パクリさせてもらい、自身のWordPress-lectureディレクトリ内にdocker-compose.ymlファイルを作成

・自身の現在のディレクトリをコンテナにバインドマウントするための記述 -.:/app をvolumes欄に追加

・ポート番号8080は別のレッスンで使用していたので8081に変更

最終的なファイルの内容がこちら

docker-compose.yml
version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8081:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - .:/app
      - wordpress:/var/www/html
      - ./wp-content/themes:/var/www/html/wp-content/themes
      - ./wp-content/plugins:/var/www/html/wp-content/plugins

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:

今まで丸パクリしたコードでも度々エラーが起きていた経験から、無事に成功するかドキドキしながらも、
docker-compose.ymlファイルを置いているWordPress-lectureディレクトリからコマンドを実行

WordPress-lecture $ docker-compose up -d

(-dオプションはバックグラウンドで処理を実行させるためのもの)

doneの文字が表示され無事に成功
localhost:8081にアクセスするとWordPressのデフォルト画面が表示された!

ここに来るまでにかなりの時間がかかり苦労したため、無事に成功して感動。
エンジニアにとって苦労することが大事と言うけど、本当にその通りで苦労して手に入れた技術とか知識は身体に染み付くと思うし、うまくいった時に感動があるのでますます勉強が好きになるし意欲も高まっていきますね。

※もし間違い等あれば指摘・訂正していただければと思います。

ということで以上です
###終

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?