我有以下一行脚本:
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
环境参数。你能帮帮我吗?
答案 0 :(得分:2)
这不起作用,因为使用
设置变量env FOO=BAR cmd
不会使变量FOO
可用于在
-e MYSQL_USER=$FOO
换句话说,它失败的原因与
相同FOO=BAR echo $FOO
不会输出BAR
。在调用$FOO
之前,shell会扩展echo
。你明白了吗?相反,你应该使用
FOO=BAR; echo $FOO