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 1 year has passed since last update.

Docker-composeでWEB・DBのDockerfileよりwordpressを構築する

Posted at

#目的
Dockerの理解を深めたいと考え、Docker-Composeを用いてWordpressの構築を行いました。

#条件設定
・AmazonLinux2のイメージを用いて構築する
・WEB用とDB用のコンテナそれそれ2台を用いる
・データの永続化
 ログ記事を書いた後に、コンテナの再起動をしても書いたブログ記事がちゃんと
 残ってるかどうか

#環境設定
・docker ver3.8
・php ver7.3
・Apache
・MySQL
・mariadb

#構成
/opt/project
  l  L docker-compose.yml
  l---web
  l   l-Dockerfile
  l---db
   l-Dockerfile
   l-wordpress
      l-db.opt

#手順

1.ルート権限になる

# sudo su -

2.Dockerのインストール

# yum install docker

3.dockerの起動

# systemctl start docker

4.dockerのプロセスが通っているかの確認

# ps -ef | grep docker

5.dockerのシステム起動の確認

# systemctl status docker

6.作業ディレクトリの作成・移動

# mkdir /opt/project && cd /opt/project

7.web/dbのディレクトリを作成

# mkdir web
# mkdir db

8.ymlファイルを作成

# vi docker-compose.yml
docker-compose.yml
-----------------------------------------
 version: "3.8"
services:
#./webに作成したwordpressのDockerfileを使用して"docker-compose build"でwebという名前のイメージを作成
  web:
    container_name: web
    build: ./web
    #ポート番号の指定
    ports:
      - "80:80"
    tty: true
#./dbに作成したMySQLのDockerfileを使用して"docker-compose build"でdbという名前のイメージを作成
  db:
    container_name: db
    build: ./db
    #ポート番号の指定
    ports:
      - "3306:3306"
    tty: true
 -----------------------------------------

9.wordpressのDockerfileを作成

# cd /opt/project/web && vi Dockerfile
/opt/project/web
-----------------------------------------
#AmazonLinux2の環境を使用
FROM amazonlinux:2

#初期装備をインストール
RUN yum -y install yum-utils tar wget procps epel-release
RUN yum clean all

#Apacheインストール
RUN yum -y install httpd

#PHPのインストール
RUN amazon-linux-extras enable php7.3
RUN yum install -y php php-gd php-mysqlnd php-xmlrpc

#wordpressインストール
#ENV wpdl https://wordpress.org/latest-ja.tar.gz

# wp download
#RUN cd /var/www/html && wget -O - $wpdl | tar xzfv -
#RUN mv /var/www/html/wordpress/* /var/www/html
RUN wget https://wordpress.org/latest.tar.gz
RUN tar -xzvf latest.tar.gz
RUN mv /wordpress/* /var/www/html
RUN chown -R apache:apache /var/www/html
RUN chmod 2775 /var/www/html

CMD [ "/usr/sbin/httpd", "-D", "FOREGROUND" ]
-----------------------------------------

10.データベースのDockerfileを作成

# cd /opt/project/db && vi Dockerfile
/opt/project/db
-----------------------------------------
FROM amazonlinux:2

#初期装備をインストール
RUN yum install -y yum-utils tar wget procps epel-release

#インストール
RUN yum -y install mariadb mariadb-server

#pingコマンド使用
RUN yum install -y iputils

#port確認
EXPOSE 3306

# DB作成
RUN mkdir /var/lib/mysql/wordpress/
COPY ./wordpress /var/lib/mysql/wordpress/
RUN chown -R mysql:mysql /var/lib/mysql/wordpress

#mariadbの起動
CMD ["/usr/bin/mysqld_safe" ,"--skip-grant-tables"]
 -----------------------------------------

11.dbのイメージを作成する際に必要なファイルを作成

# mkdir /opt/project/db/wordpress && vi /opt/project/db/wordpress/db.opt
/opt/project/db/wordpress/db.opt
 -----------------------------------------
 default-character-set=latin1
 default-collation=latin1_swedish_ci
 -----------------------------------------

12.docker-composeでイメージをビルド

# cd /opt/prject
# docker-compose build

13.作成したイメージの確認

#docker images

14.docker-composeでコンテナを作成

# docker-compose up -d

15.作成したコンテナの確認

# docker ps
# docker-compose ps

16.WEBでログインしてwordpressをインストール

http://グローバルIP

~データベースの選択画面~
データベース名: wordpress
ユーザ名:  空白  
パスワード:   空白  
データベースのホスト名:db
※データベースのコンテナ名
テーブルの接頭辞:wp_    (そのまま)
でインストール!!
次の課題の確認のため、何か一つ思いのたけを投稿しておく。。。

#参考
滅びの呪文
初心者はdocker-composeから始めた方がいいかもしれない説
Docker Compose を使う

#データの永続化

1.dockerボリュームを作成

# docker volume create mariadb

2.docker-compose.ymlにvolumesを追加

# cd /var/project/ && vi docker-compose.yml
docker-compose.yml
---------------------------------------------
version: "3.8"
services:
  web:
  ~要約~
  #ボリュームを使いWEBデータを永続化
    volumes:
      - wordpress/:/var/www/html
 ~~~~~~~~~~~~~~~~~~~~~~~  
  db:
  ~要約~
  #ボリュームを使いDBデータを永続化
    volumes:
      - mariadb:/var/lib/mysql
 ~~~~~~~~~~~~~~~~~~~~~~~
# databaseのように永続的なストレージが欲しい場合に必要な設定
volumes:
  mariadb:
  wordpress:
---------------------------------------------

3.dockerコンテナを一度削除

# docker-compose down -v

4.docker-composeでコンテナを再作成

# docker-compose up -d

5.WEBでログインして確認

http://グローバルIP

#参考②
Docker-Compose persistent data MySQL
Dockerのデータを永続化!Data Volume(データボリューム)の理解から始める環境構築入門
docker-compose を使って 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?