在docker run中使用容器环境变量而不使用bash -c

时间:2016-01-29 02:09:17

标签: bash docker debian environment-variables docker-compose

我有一个WP-CLI容器,我必须运行以下命令:

wp --allow-root core config --dbname=$MYSQL_DATABASE --dbuser=$MYSQL_USER --dbpass=$MYSQL_PASSWORD --dbhost=$WP_CLI_MYSQL_HOST --debug

当我在容器中运行bash时,我没有问题,但是当我尝试这样做时:

docker-compose run --rm wordpress-cli --rm core config --dbname=$MYSQL_DATABASE --dbuser=$MYSQL_USER --dbpass=$MYSQL_PASSWORD --dbhost=$WP_CLI_MYSQL_HOST --allow-root --debug

所有环境变量都在主机而不是容器中进行评估,因此它们将空传递给容器。

我在this question中发现,使用bash -c 'my command'可以解决问题,但我的ENTRYPOINT是WP命令,所以我想在不使用bash的情况下运行命令。

1 个答案:

答案 0 :(得分:2)

逃离$,以便它们传递到容器:

docker-compose run --rm wordpress-cli --rm core config --dbname=\$MYSQL_DATABASE --dbuser=\$MYSQL_USER ...