Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Docker run command with environment variables

Tags:

docker

I'm trying to launch a docker container that will execute a command like this:

docker run --net="host" -it --entrypoint bash $KAFKA_DOCKER_IMAGE "\$KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic $1 --partitions $num_partitions --replication-factor $replication_factor"

Where $KAFKA_DOCKER_IMAGE, $replication_factor and $num_partitions are variables defined in a script that I'm using to execute this command. And $KAFKA_HOME is an environment variable that is already defined in the docker image.

My problem is that the command that is being executed on the container is the following:

$KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic popota --partitions 1 --replication-factor 1

It doesn't expand the $KAFKA_HOME. How can I do this?

like image 803
luis.alves Avatar asked Sep 02 '25 06:09

luis.alves


2 Answers

I think you have to supply the environment variables using the -e flag

https://docs.docker.com/engine/reference/run/#env-environment-variables

like image 158
DaveH Avatar answered Sep 04 '25 21:09

DaveH


I found the solution:

docker run --net="host" -it --entrypoint bash $KAFKA_DOCKER_IMAGE -c "\$KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic $1 --partitions $num_partitions --replication-factor $replication_factor"
like image 32
luis.alves Avatar answered Sep 04 '25 21:09

luis.alves