找不到环境参数



我有以下一行脚本:

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

最新更新