问题描述
为啥容器里面的wp-config.php的 DB_PASSWORD的变量没有被注入呢。 其他host 、name 、user都被注入替换了。
。容器中wp-config.php的DB_PASSWORD值没有修改成功。
secret.yaml:
dp.yaml:
cd /usr/share/nginx/html
[root@wordpress-dp-59b76cd655-s5xvw html]# egrep -i "define\( 'DB_" wp-config.php
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'root' );
define( 'DB_PASSWORD', '{DB_PASSWORD:-wordpress}' );
define( 'DB_HOST', 'mysql-0.mysql-svc.default.svc.cluster.local' );
define( 'DB_CHARSET', 'utf8' );
define( 'DB_COLLATE', '' );
[root@wordpress-dp-59b76cd655-s5xvw html]# env | grep -i "DB_"
DB_HOST=mysql-0.mysql-svc.default.svc.cluster.local
DB_NAME=wordpress
DB_PASSWORD=oldxu3957
DB_USER=root
#打包时的wp-config.php内容:
/** The name of the database for WordPress */
define( 'DB_NAME', '{DB_NAME}' );
/** Database username */
define( 'DB_USER', '{DB_USER}' );
/** Database password */
define( 'DB_PASSWORD', '{DB_PASSWORD}' );
/** Database hostname */
define( 'DB_HOST', '{DB_HOST}' );
/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );
处理方法:
entrypoint.sh的 sed写漏$号。 然后重新docker build打包
捋一捋过程
阴差阳错,粗心大意。但算是明白赋值流程了。
dp文件通过envFrom引用secret(wp-secre)里面的变量。注入到pod中,此时ENV就有了刚才的变量。
启用entrypoint.sh时,使用sed引用变量修改wp-config.php的内容。