我有以下一行脚本:
sudo env WORDPRESS_MYSQL_ROOT_PASSWORD="passwd"
WORDPRESS_MYSQL_USER="wordpress"
WORDPRESS_MYSQL_PASSWORD="wordpress"
WORDPRESS_ADMIN_USER="admin"
WORDPRESS_ADMIN_PASSWORD="admin"
WORDPRESS_URL="http://0.0.0.0:8080"
docker run
--volume "/home/pcmagas/Kwdikas/docker/piwik-with-wordpress/scripts/../data/wordpress/db":/var/lib/mysql
--volume /home/pcmagas/Kwdikas/docker/piwik-with-wordpress/scripts/../restore/wordpress/db:/docker-entrypoint-initdb.d
-e MYSQL_ROOT_PASSWORD=$WORDPRESS_MYSQL_ROOT_PASSWORD
-e MYSQL_DATABASE="wordpress"
-e MYSQL_USER=$WORDPRESS_MYSQL_USER
-e MYSQL_PASSWORD=$WORDPRESS_MYSQL_PASSWORD
mariadb
但是由于某种原因,我会遇到错误:
错误:数据库是非初始化的,未指定密码选项 您需要指定一个mysql_root_password之一,mysql_allow_empty_password和mysql_random_root_password
这意味着由于某种原因找不到$WORDPRESS_MYSQL_ROOT_PASSWORD
环境参数。为什么这是?
这是无法工作的,因为用
设置变量env FOO=BAR cmd
不能使变量FOO
可用于外壳以在
-e MYSQL_USER=$FOO
换句话说,它因与
相同的原因而失败FOO=BAR echo $FOO
未输出BAR
。Shell在之前扩展了$FOO
它调用echo
。你明白了吗?相反,您应该使用
FOO=BAR; echo $FOO