引っ越しが一段落したのでAdseseの再設定をしていると「AMP自動広告」という単語が目に入りました。
モバイル向けの高速化は当ブログには不要と思うのですが、「自動広告」は魅力的です。元々自動広告をいれていたのですが、ついでにAMP自動広告の設定も入れてみました。
それに合わせてwordpressのAMPプラグイン(google公式?)を導入しました。
するとエラーが発生!!

cURL error 7:Failed to connect to momiji.com port 443:Host is unreachable.
wordpressコンテナからnginxコンテナへのドメイン名での通信ができていないようです。(cUrlだけエラーで、pingやnslookupは上手くいくのですが)
そういえば、構築中にもcUrlエラーが発生して困りました(別の手段で凌ぎました)
ipアドレスを調べてhostsに書いて回避してみたりしたのですが、少し環境をいぢるとすぐに消えてしまいます・・・(再構築するのでw)
そこで本格対策を調べた結果、よい対策が見つかりました!
最初にdocker-compose内でlinksを指定するとうまくいったのですが、公式ドキュメントを見てみると
・linksはレガシー機能なので、近いうちに削除するぞ!
と書いてありました。
そこで公式推奨のnetowork定義を追加した結果、以下の定義でうまくいきました。
version: '3'
services:
wordpress:
image: wordpress:fpm-alpine
depends_on:
- mysql
container_name: momiji-wp
restart: unless-stopped
networks:
default:
volumes:
- www:/var/www/html
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_USER: xxxx
WORDPRESS_DB_PASSWORD: xxxxxxxx
WORDPRESS_DB_NAME: wordpress
nginx:
build: ./nginx
container_name: momiji-www
restart: unless-stopped
networks:
default:
aliases:
- momiji.com
- www.momiji.com
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/nginx_conf:/etc/nginx/conf.d
- certkeys:/etc/letsencrypt
- www:/var/www/html
mysql:
image: mysql:5.7
container_name: momiji-db
restart: unless-stopped
networks:
default:
volumes:
- db:/var/lib/mysql
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: xxxx
MYSQL_PASSWORD: xxxxxxxx
MYSQL_ROOT_PASSWORD: xxxxxxxx
networks:
default:
volumes:
www:
db:
certkeys:
変更箇所
- デフォルトのnetworks定義を追加
- wordpress、nginx、mysqlの各サービスにnetowroks定義を追加
- nginxサービスにaliasesを追加
3のaliases追加で、指定されたネットワークにそのサービスのalias名が追加されるようです。(hostsに追加されるわけではありません)
散々苦労してAMPを追加した結果、エラーが多すぎて対応をあきらめましたとさ・・・_| ̄|○