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?
I think you have to supply the environment variables using the -e flag
https://docs.docker.com/engine/reference/run/#env-environment-variables
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"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With