אחרי העזרה הנפלאה של @aaron בפוסט הקודם, שמתי לב שהדוגמא שהבאתי טיפה שונה מהמקרה המקורי שלי.
האפליקציה הראשית, צריכה להיות במצב HOST, דהיינו שמשתמשת ברשת של השרת המארח. וממילא כבר לא שייך לעשות LINK לקונטיינר של המסד נתונים (הם אומרים שאין משמעות לLINK במצב HOST). אבל המסד נתונים הוא נשאר בBRIDGE, אין צורך שיהיה בHOST.
ממילא כבר אי אפשר להתחבר לקונטיינר של המסד נתונים על ידי שימוש בשם השרת שהגדרתי בcontainer_name, אלא רק על ידי חיבור לכתובת אייפי הפנימית של הקונטיינר.
זה לא סוף העולם, אבל לא מרגיש לי נכון להשתמש בכתובת אייפי שהיא מן הסתם דינמית (יצא לי 172.19.0.2) ועלולה להשתנות ולהפיל את הפרוייקט.
יש רעיון איך להגדיר בכל זאת שם לקונטיינר ולהתחבר אליו ישירות?
תודה
מצורף הקובץ DOCKER-COMPOSE
version: '3.1'
services:
db:
image: mariadb:10.5
container_name: maindb
environment:
MYSQL_ROOT_PASSWORD: 54fghjghjk44RkjJHkhgv3798
main:
build: .
container_name: main
network_mode: host
depends_on:
- db
# links:
# - db:maindb
והקובץ ODBC.INI
[MySQL-main]
Description=MySQL connection
driver=MySQL
server=172.19.0.2
;server=maindb
Port=3306
;Socket=/var/run/mysqld/mysqld.sock
option=3
Charset=utf8