WordPress on Dockerで環境変数の読み取りエラー

何があったか?

こちらのDockerイメージを利用してDockerを起動しています。
当時の構成上、環境変数”WORDPRESS_CONFIG_EXTRA”の設定が必要で、内容がPHPコードで複数行にわたります。
そのため”.env”ファイルを利用せずに手動でターミナルからcomposeコマンドをシェルから実行しています。

すると、以下のようなエラーが発生しました。

WARN[0000] The "WORDPRESS_CONFIG_EXTRA" variable is not set. Defaulting to a blank string.

正直原因はよく分かっていません。

ただ以下のようなシェルスクリプトでは正常に環境変数を読み取りました。何故だろう?
教えてください。

#!/bin/bash

# append setting in wp-config.php, for Reverse Proxy
export WORDPRESS_CONFIG_EXTRA=$(cat << EOF
define('WP_HOME', 'https://${HOSTNAME}/blog');
define('WP_SITEURL', 'https://${HOSTNAME}/blog');

define('FORCE_SSL_ADMIN', true);
\$_SERVER['HTTPS']='on';
\$_ENV['HTTPS'] = 'on';

EOF
)

# Start
sudo docker compose up -d

追記:解決した!

“sudo”使ってたからせっかく定義した環境変数が引き継がれなかった訳だ。

これを解決するには”sudo -E”で環境変数を継承すればいい。

# 実行中のシェルで環境変数を定義
export WORDPRESS_CONFIG_EXTRA=$(cat << EOF
define('WP_HOME', 'https://${HOSTNAME}/blog');
define('WP_SITEURL', 'https://${HOSTNAME}/blog');

define('FORCE_SSL_ADMIN', true);
\$_SERVER['HTTPS']='on';
\$_ENV['HTTPS'] = 'on';

EOF
)

# "-E"オプションで上で定義した環境変数を継承
sudo -E docker compose up -d

コメントを残す