2016-12-16 1 views
1

Ich habe folgendes eine Zeile Skript:kann nicht enviromental Parameter finden

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 

Aber aus irgendeinem Grund bekomme ich den Fehler:

error: database is uninitialized and password option is not specified You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD

dass aus irgendeinem Grund bedeutet, dass nicht die $WORDPRESS_MYSQL_ROOT_PASSWORD enviromental finden Parameter. Kannst du mir helfen warum?

+0

verwenden Ist 'WORDPRESS_MYSQL_ROOT_PASSWORD' soll einer von' MYSQL_ROOT_PASSWORD' ersetzen, 'MYSQL_ALLOW_EMPTY_PASSWORD' oder' MYSQL_RANDOM_ROOT_PASSWORD'? Haben Sie versucht, eine dieser Variablen anstelle von WORDPRESS_MYSQL_ROOT_PASSWORD zu setzen? – Ksyqo

+0

Nein, weil ich es so ausführen, um ein Volume für https://github.com/ellakcy/piwik-withwordpress wiederherzustellen und verwendet die gleichen Parameter. –

Antwort

2

Dies kann nicht funktionieren, weil eine Variable mit

env FOO=BAR cmd 

Einstellung macht nicht die Variable FOO an der Schale vorhanden es mit anderen Worten in

-e MYSQL_USER=$FOO 

zu erweitern, ist es es nicht aus dem gleichen Grund wie

FOO=BAR echo $FOO 

gibt BAR nicht aus . Die Shell expandiert $FOOvor es ruft echo auf. Du hast die Idee? Stattdessen sollten Sie etwas entlang

FOO=BAR; echo $FOO 
+0

Dann, warum dieses Skript funktioniert: https://gist.github.com/pc-magas/978aeeb512be10647c8af67c6ba0c7f7 Ich verwende die gleiche Philosophie mit dem obigen Skript. –

+0

@DimitriosDesyllas Da dieses Skript kein '$ FOO' enthält, damit die Shell vor der Ausführung des Befehls erweitert wird. Es setzt alle Umgebungsvariablen mit 'env'. Du verwendest also NICHT die "selbe Philosophie" dort. – Jens

Verwandte Themen