मैं एक MySQL डेटाबेस कंटेनर द्वारा समर्थित सोनारक्यूब कंटेनर सेट करने का प्रयास कर रहा हूं। मेरे डोकर-compose.yml:डॉकर-कंपोज़ - लिंक किए गए सेवा पोर्ट का पर्दाफाश करें
sonar:
environment:
- SONARQUBE_USER=sonar
- SONARQUBE_PASSWORD=sonar
- SONARQUBE_DATABASE=sonar
- SONARQUBE_JDBC_URL=jdbc:mysql://db:3306/sonar?useUnicode=true&characterEncoding=utf8
build: .
ports:
- "19000:9000"
- "19306:3306"
links:
- db
db:
environment:
- MYSQL_ROOT_PASSWORD=root-secret
- MYSQL_USER=sonar
- MYSQL_PASSWORD=sonar
- MYSQL_DATABASE=sonar
image: mysql
ports
खंड में मैं SonarQube (वेब इंटरफेस) और पोर्ट 3306 (MySQL कनेक्शन) से दोनों बंदरगाह 9000 को बेनकाब करने की कोशिश कर रहा हूँ।
"मुख्य" कंटेनर से किसी लिंक किए गए सेवा (जैसे db
) से पोर्ट को बेनकाब करने का कोई तरीका है। sonar
?
संपादित करें: बस मेरी ज़रूरतों को बेहतर ढंग से समझाने के लिए, मैं अपने बंदरगाहों को अपने localhost
पर बेनकाब करना चाहता हूं। मुझे अपनी मशीन से दोनों बंदरगाहों तक पहुंच की आवश्यकता है, क्योंकि मैं सोनारक्यूब धावक को डेटाबेस तक पहुंच की आवश्यकता है और मैं डेटाबेस में कुछ प्रश्नों को भी चला सकता हूं, मेरी मशीन से, अन्य कंटेनर के अंदर नहीं।
मैं समझता हूँ अभी व। लेकिन मेजबान को 'डीबी' एक्सपोस के बंदरगाह को बस क्यों न करें जैसे आपने सोनार के लिए किया था? सोनार अभी भी 'एक्सपोस' डीबी पोर्ट बंदरगाह का उपयोग करेगा, लेकिन लोकहोस्ट से आपकी क्वेरी उस पोर्ट वैल्यू का उपयोग करेगी जिसे आपने 'डीबी/पोर्ट्स सेक्शन में निर्दिष्ट किया होगा (नीचे मेरा संपादित उत्तर देखें) – VonC