Pada Juli 2019, dokumentasi buruh pelabuhan resmi :
Sumber:https://docs.docker.com/compose/compose-file/ #link
Solusi #1 :file lingkungan sebelum memulai
Pada dasarnya Kami memusatkan semua konfigurasi dalam file dengan variabel lingkungan dan jalankan sebelum docker-compose up
Pendekatan berikut membantu saya dalam skenario ini:
- Docker-compose.yml Anda memiliki beberapa kontainer dengan ketergantungan yang kompleks di antara mereka
- Beberapa layanan Anda di docker-compose Anda perlu terhubung ke proses lain di mesin yang sama. Proses ini bisa berupa wadah buruh pelabuhan atau bukan.
- Anda perlu berbagi variabel antara beberapa file yang dibuat oleh buruh pelabuhan seperti host, kata sandi, dll
Langkah
1.- Buat satu file untuk memusatkan konfigurasi
File ini dapat diberi nama:/env/company_environments dengan ekstensi atau tidak.
export MACHINE_HOST=$(hostname -I | awk '{print $1}')
export GLOBAL_LOG_PATH=/my/org/log
export MONGO_PASSWORD=mypass
export MY_TOKEN=123456
2.- Gunakan variabel env di docker-compose.yml Anda
wadah A
app_who_needs_mongo:
environment:
- MONGO_HOST=$MACHINE_HOST
- MONGO_PASSWORD=$MONGO_PASSWORD
- TOKEN=$MY_TOKEN
- LOG_PATH=$GLOBAL_LOG_PATH/app1
wadah B
app_who_needs_another_db_in_same_host:
environment:
- POSTGRESS_HOST=$MACHINE_HOST
- LOG_PATH=$GLOBAL_LOG_PATH/app1
3.- Mulai penampung Anda
Cukup tambahkan source sebelum perintah docker-compose:
source /env/company_environments
docker-compose up -d
Solusi #2 :host.docker.internal
https://stackoverflow.com/a/63207679/3957754
Pada dasarnya menggunakan fitur buruh pelabuhan di mana host.docker.internal dapat digunakan sebagai ip server tempat komposisi buruh pelabuhan Anda telah memulai beberapa wadah