Memo

メモ > サーバ > 各論: Docker > WordPress

■WordPress
※後から以下がリリースされた 未検証だが、次回にWordPress環境を作るときは検討したい WordPress公式dockerパッケージ wp-env による開発環境構築 - Tips - Capital P - WordPressメディア https://capitalp.jp/2020/05/15/head-first-wp-env/ 以下、上のパッケージとは関係なく検証したもの ミドルウェアだけでなく、アプリケーションも含めて構築できる 以下はGit管理も想定した例 ■ファイルの作成 C:\Users\refirio\docker\ 内に以下を作成するとする wordpress\.gitignore
Thumbs.db .DS_Store /docker-compose.override.yml /html/wp-config.php /html/.htaccess /html/.htpasswd /html/index.php /html/license.txt /html/readme.html /html/wp-*.php /html/xmlrpc.php /html/wp-admin/* /html/wp-content/* !/html/wp-content/themes /html/wp-content/themes/* !/html/wp-content/themes/simple /html/wp-includes/* /html/tool/*
wordpress\html\wp-content\themes\simple テーマを配置 wordpress\docker\wordpress\Dockerfile
FROM wordpress:5-php7.2-apache RUN apt-get update && \ docker-php-ext-install pdo_mysql mysqli mbstring RUN curl --location --output /usr/local/bin/mhsendmail https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 RUN chmod +x /usr/local/bin/mhsendmail RUN echo 'sendmail_path="/usr/local/bin/mhsendmail --smtp-addr=mailhog:1025 --from=no-reply@docker.dev"' > /usr/local/etc/php/conf.d/mailhog.ini RUN usermod -u 1000 www-data && \ groupmod -g 1000 www-data
wordpress\docker\wordpress\php.ini
date.timezone = Asia/Tokyo
wordpress\docker\mysql\Dockerfile
FROM mysql:5.7
wordpress\docker\mysql\my.cnf
[mysqld] character-set-server=utf8
wordpress\docker\mailhog\Dockerfile
FROM mailhog/mailhog
wordpress\docker-compose.yml
version: '3' networks: compose_network: volumes: compose_wordpress_data: services: mailhog: container_name: mailhog ports: - 8025:8025 - 1025:1025 networks: - compose_network build: ./docker/mailhog mysql: container_name: mysql volumes: - ./docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf:ro - compose_wordpress_data:/var/lib/mysql:rw environment: TZ: Asia/Tokyo MYSQL_ROOT_PASSWORD: rootpass MYSQL_USER: user MYSQL_PASSWORD: userpass MYSQL_DATABASE: wordpress networks: - compose_network build: ./docker/mysql wordpress: container_name: wordpress volumes: - ./docker/wordpress/php.ini:/usr/local/etc/php/conf.d/php.ini:ro - ./html:/var/www/html environment: WORDPRESS_DB_HOST: mysql WORDPRESS_DB_USER: user WORDPRESS_DB_PASSWORD: userpass WORDPRESS_DB_NAME: wordpress ports: - 80:80 networks: - compose_network build: ./docker/wordpress
■設定の上書き docker-compose.yml と同じ階層に docker-compose.override.yml を置くと、その設定内容が優先される wordpress\docker-compose.yml
version: '3' services: mysql: environment: MYSQL_ROOT_PASSWORD: rootpass MYSQL_USER: user MYSQL_PASSWORD: userpass MYSQL_DATABASE: wordpress wordpress: environment: WORDPRESS_DB_HOST: mysql WORDPRESS_DB_USER: user WORDPRESS_DB_PASSWORD: userpass WORDPRESS_DB_NAME: wordpress
■よく使用するコマンド ※初回は特に、起動まで時間がかかる httpでアクセスできなくても、mysqlに接続できなくても、しばらく待てば解決することがある
$ cd docker/wordpress $ docker-compose build … ビルドする場合(構成を変更した場合など) $ docker-compose up -d … 起動 $ docker-compose down … 終了 $ docker container exec -it php bash … phpコンテナのターミナルに接続する場合 $ docker container exec -it mysql bash … mysqlコンテナのターミナルに接続する場合 $ mysql -u root -p … MySQLに接続 $ docker volume ls ... ボリュームを確認 $ docker volume rm compose_wordpress_data ... ボリュームを削除
■ブラウザからのアクセス http://127.0.0.1/ http://127.0.0.1:8025/

Advertisement