Hi
I’m having a bit of an issue spinning up two containers with Docker Compose.
I am aware that I can reference each container by its name and that will resolve to the IP address within the network that Compose sets up, but I actually need to extract the IP address of one of the containers and pass it in as an environment variable to the other container before it starts up.
I can’t rewrite the application to not need this dependency, unfortunately.
Is there a way to get this to work?
I have tried:
- depends_on
- links
and both do not work for me.
I am running Docker For Windows 2.2.0.4 (Docker Engine 19.03.8; Compose 1.25.4)
My docker-compose.yml looks like this:
version: "3"
services:
super:
build:
context: .\
dockerfile: Dockerfile.super
ports:
- "8080:80"
sub:
environment:
super-address: ${SILO_ADDR} # I need to put the IP address of the `super` container in here!
build:
context: .\
dockerfile: Dockerfile.sub
I can finagle the behaviour I want without Compose by basically running a script that
- starts up
super
- waits a few seconds
-
docker inspect
s the container and gets its ip-address - starts up
sub
by with the ip-address set in
I’d like to do this with Compose if possible.
Can anyone help?