I juli 2019, officiel dokumentation for havnearbejder:
Kilde:https://docs.docker.com/compose/compose-file/ #links
Løsning #1:miljøfil før start
Grundlæggende centraliserer vi alle konfigurationer i en fil med miljøvariabler og kør det før docker-compose up
Følgende tilgang hjalp mig i disse scenarier:
- Din docker-compose.yml har flere containere med komplekse afhængigheder imellem dem
- Nogle af dine tjenester i din docker-compose skal oprette forbindelse til en anden proces på den samme maskine. Denne proces kan være en docker-container eller ej.
- Du skal dele variabler mellem flere docker-compose-filer som host, adgangskoder osv.
Trin
1.- Opret én fil for at centralisere konfigurationer
Denne fil kunne hedde:/env/company_environments med forlængelse eller ej.
export MACHINE_HOST=$(hostname -I | awk '{print $1}')
export GLOBAL_LOG_PATH=/my/org/log
export MONGO_PASSWORD=mypass
export MY_TOKEN=123456
2.- Brug env-variablerne i din docker-compose.yml
beholder A
app_who_needs_mongo:
environment:
- MONGO_HOST=$MACHINE_HOST
- MONGO_PASSWORD=$MONGO_PASSWORD
- TOKEN=$MY_TOKEN
- LOG_PATH=$GLOBAL_LOG_PATH/app1
beholder B
app_who_needs_another_db_in_same_host:
environment:
- POSTGRESS_HOST=$MACHINE_HOST
- LOG_PATH=$GLOBAL_LOG_PATH/app1
3.- Start dine containere
Bare tilføj kilde før docker-compose kommandoer:
source /env/company_environments
docker-compose up -d
Løsning #2:host.docker.internal
https://stackoverflow.com/a/63207679/3957754
Brug grundlæggende en funktion i docker, hvor host.docker.internal kunne bruges som ip på serveren, hvor din docker-compose har startet flere containere