サーバー設定の忘備録6 wordpress編

ココがメイン。とはいえ、dockerなので、結構簡単です。参考HPは公式のdockerイメージより。

wordpress – Official Image | Docker Hub

スクリプトもどきを貼りまして、注意点は下記へ。

mkdir -p ~/docker/wordpress && cd $_

#docker-compose.ymlを作る
cat << EOF > docker-compose.yml
version: "3.7"

services:
  wordpress:
    image: wordpress #WordPressのイメージ
    container_name: wordpress-docker
    # ports: # ポートの指定はnginx-proxyでするのでここではしない
    #   "80:80"
    networks:
      nginx-proxy-network:
        aliases:
          - wordpress.example.com
    volumes:
      - /var/docker/wp/html:/var/www/html              #docker_wordpress/html にデータがマウントされる
      - /var/docker/wp/config:/usr/local/etc/php/conf.d/upload.ini
    environment:
      WORDPRESS_DB_HOST: wordpressdb:3306
      WORDPRESS_DB_USER: wordpressuser
      WORDPRESS_DB_NAME: wordpress-db          #WordPressの設定
      WORDPRESS_DB_PASSWORD: wordpresspassword #WordPressの設定
      VIRTUAL_HOST: example.com # nginx-proxyのホスト設定 ※本番では使用するFQDNなどにする。
      LETSENCRYPT_HOST: example.com # Let's Encryptのホスト設定 ※本番では使用するFQDNなどにする。
      LETSENCRYPT_EMAIL: xxx@example.com # Let's Encryptのメール設定
      LETSENCRYPT_TEST: "true" # Let's Encryptのテストかどうかのフラグ 本番ではfalseにする (指定しない とテスト扱いになる)
      CERT_NAME: example.com # ローカルで認証局を立てるときに使う ※本番ではLet's Encryptから直接取得するの でコメントアウトする
      #HTTPS_METHOD: noredirect # リダイレクトを無効にする
    depends_on:
      - mysql
    restart: always

  mysql:
    image: mariadb #MariaDBのイメージ
    container_name: wordpressdb
    ports:
      - "3306:3306" #他のMySQLとポートがバッティングする場合は変える 例) "33060:3306"
    networks:
      nginx-proxy-network:
        aliases:
          - wordpress.mqspl.example.com
    volumes:
      - /var/docker/wp/db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: mysql-root-pw
      MYSQL_DATABASE: wordpress-db
      MYSQL_USER: wordpressuser
      MYSQL_PASSWORD: wordpresspassword
    restart: always

networks:
  nginx-proxy-network:
    external: true

EOF

cat << EOF > /var/docker/wp/config/upload.ini
upload_max_filesize = 100M
post_max_size = 100M
EOF

docker-compose build --no-cache

#cat << EOF > php.ini
#upload_max_filesize = 100M
#post_max_size = 100M
#EOF
#
#docker cp ./php.ini wordpress-docker:/usr/local/etc/php/php.ini


docker-compose up -d

注意点は、

  • データベースのポート3306が他のコンテナや、ホストのデータベースと被ることがあるので、その時は変更すること。
  • phpの転送量増減が小さいので、php.iniを作ってコンテナの中に入れる。か、バインドマウントボリュームを作ってその中に記載した.confファイルを準備するか。
  • wordpressコンテナの待ち受けポートは記載しなくてよい。直接proxyコンテナから通信が80番ポートにダイレクトにやってくるので、docker networkさえ同じにしておけばOK.
カテゴリー: Linux、サーバー, PC関連 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA