Wie wird mit IP-Adressen umgegangen, wenn Docker-Container mithilfe von Docker-Compose miteinander verknüpft werden?
Ich benutze docker-compose, um einen kompletten Entwicklungsstack zu erstellen.
Die Anwendung benötigt einen MySQL-Server.
Der MySQL-Server ist ein externes Container-Setup von Docker-Compose:
mysql:
image: mysql:5.6
volumes:
- /data/mysql:/var/lib/mysql
- ./docker/mysql.d:/etc/mysql/conf.d
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: password
Die Anwendung hat eine eigene docker-compose.yml und verweist auf den mysql-Container:
my-application:
build: . # the Dockerfile resides in the current folder
ports:
- "9180:80"
- "9543:443"
external_links:
- mysql_mysql_1:mysql
environment:
DOCKER_ENVIRONMENT: dev
DB_NAME: local_db
DB_PASS: password
DB_USER: root
DB_HOST: # how to set the mysql's IP address?
Ich kann sie nicht im Docker-Compose übergeben, da es dynamisch ist.
Ich weiß, dass die Anwendung die MySQL-IP-Adresse kennt, da ich bestimmte Variablen festgelegt habe:
application-container$ env|grep ADDR
MYSQL_PORT_3306_TCP_ADDR=172.17.0.241
Yet das ist nicht meine PflichtDB_HOST
.
Kann ich die Variable irgendwie auf @ abbildeDB_HOST
oder anders einstellen?