Docker

docker composeでSSL-WordPress 本番環境を構築

スポンサーリンク
Docker

タイトルの通りdocker composeを使ってSSL-WordPressの本番環境を構築します。

カクカクシカジカありまして、サーバを移転する事としました。

まぁ実際のところ大した理由があるわけではないのですが。

それに伴い、せっかくだからdockerを使った環境にしたいなーと欲をかきはじめ、docker-composeファイルを作成しました。

wmapst/wmap_infrastructure_wordpress
Contribute to wmapst/wmap_infrastructure_wordpress development by creating an account on GitHub.

docker-compose.ymlの中身は↓↓

version: '3.3'
services:
  wordpress_db:
    image: mysql:5.7
    container_name: wordpress_db
    restart: always
    volumes:
       - ./data:/var/lib/mysql
       - ./mysql_conf/my.cnf:/etc/mysql/my.cnf
    environment:
      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASS}
      MYSQL_DATABASE: ${DB_NAME}
      MYSQL_USER: ${DB_USER}
      MYSQL_PASSWORD: ${DB_USER_PASS}
      TZ: 'Asia/Tokyo'
    networks:
      app_net:
        ipv4_address: '172.18.0.2'
  wordpress_php:
    image: wordpress:5-fpm
    container_name: wordpress_php
    depends_on:
       - wordpress_db
    restart: always
    volumes:
       - ./wordpress:/var/www/html
    environment:
      WORDPRESS_DB_HOST: wordpress_db
      WORDPRESS_DB_NAME: ${DB_NAME}
      WORDPRESS_DB_USER: ${DB_USER}
      WORDPRESS_DB_PASSWORD: ${DB_USER_PASS}
      TZ: 'Asia/Tokyo'
    networks:
      app_net:
        ipv4_address: '172.18.0.3'
  wordpress_web:
    image: nginx
    container_name: wordpress_web
    depends_on:
       - wordpress_php
    restart: always
    volumes:
       - ./nginx-conf/default.conf:/etc/nginx/conf.d/default.conf
       - ./wordpress:/var/www/html
       - ./web-logs:/var/log/nginx
    environment:
      TZ: 'Asia/Tokyo'
    networks:
      app_net:
        ipv4_address: '172.18.0.4'
  https-portal:
    image: steveltn/https-portal:1
    container_name: https-portal
    depends_on:
       - wordpress_web
    ports:
       - '80:80'
       - '443:443'
    restart: always
    volumes:
       - ./ssl_certs:/var/lib/https-portal
    environment:
      DOMAINS: '${HOST_DOMAIN} -> http://wordpress_web:80/'
      STAGE: '${PRODUCTION_STAGE}'
      CLIENT_MAX_BODY_SIZE: 64M
      TZ: 'Asia/Tokyo'
    networks:
      app_net:
        ipv4_address: '172.18.0.5'
networks:
  app_net:
    driver: bridge
    ipam:
      driver: default
      config:
       - subnet: '172.18.0.0/16'

このdocker-composeファイルを駆動させるためには、.envファイルが必要になります。
.envファイルは必ずdocker-compose.ymlと同階層に設置してください。

githubに上げているリポジトリにも.envファイルは含ませていますが中身の値を入れていません。
その為、ご利用の際はご自身でファイルを編集する必要があります。

ファイル内に記載する項目は.env.sample.production, .env.sample.staging, .env.sample.local を参照してください。

一応、↓にそれぞれのファイルの中身(サンプル)を記載しておきます。

.env.sample.production

DB_NAME=wordpress
DB_USER=wp_user
DB_USER_PASS=wp_passwd
DB_ROOT_PASS=root_passwd
HOST_DOMAIN=www.sample-wmapst.net
PRODUCTION_STAGE=production

.env.sample.staging

DB_NAME=wordpress
DB_USER=wp_user
DB_USER_PASS=wp_passwd
DB_ROOT_PASS=root_passwd
HOST_DOMAIN=st-www.sample-wmapst.net
PRODUCTION_STAGE=staging

.env.sample.local

DB_NAME=wordpress
DB_USER=wp_user
DB_USER_PASS=wp_passwd
DB_ROOT_PASS=root_passwd
HOST_DOMAIN=localhost
PRODUCTION_STAGE=local

また、nginxとmysqlの設定ファイルも付属させています。

ですが、とりあえず動かすという目的の元に作成されていますので、ご自身の環境に合わせて編集する事をオススメします。

※実際に本番環境として運用する際は、必ずセキュリティ面をご確認ください。

タイトルとURLをコピーしました