2016-08-12 14 views
5

मैं डॉकर-कंपोज़ के साथ 2 डॉकर कंटेनर बनाता हूं। मैं मैक पर डॉकर का उपयोग करता हूं, कोई boot2docker नहीं।डॉकर में माइस्क्ल के साथ सीक्वेल प्रो

version: '2' 
    services: 
     drupal-web: 
      image: drupal:latest 
     ports: 
      - "8080:80" 
    depends_on: 
      - mysql-server 
    links: 
      - mysql-server:mysql 
    mysql-server: 
     image: mysql 
    environment: 
     MYSQL_DATABASE: drupal 
     MYSQL_ROOT_PASSWORD: root 
     MYSQL_USER: drupal 
     MYSQL_PASSWORD: drupal 

सब कुछ ठीक काम करता है। मैं सफलतापूर्वक Drupal स्थापित करें।

समस्या यह है: मैं सेक्वेलप्रो को अपने डीबी से कनेक्ट करना चाहता हूं, लेकिन मुझे MySQL कंटेनर से कनेक्शन नहीं मिलता है। मैं एक डॉकर शुरुआत कर रहा हूँ। आपकी मदद के लिए धन्यवाद Micha

उत्तर

0

एक सा यह कुछ ऐसा दिखाई चाहिए:

version: '2' 
services: 
    mysql-server: 
     image: mysql 
     environment: 
      MYSQL_ROOT_PASSWORD: root 
      MYSQL_DATABASE: drupal 
      MYSQL_USER: drupal 
      MYSQL_PASSWORD: drupal 

    drupal-web: 
     image: drupal:latest 
     ports: 
      - "8080:80" 
     depends_on: 
      - mysql-server 
     links: 
      - mysql-server:mysql-server 
     environment: 
      MYSQL_DATABASE: drupal 
      MYSQL_USER: drupal 
      MYSQL_PASSWORD: drupal 

(आईएम यकीन नहीं एक वैश्विक स्तर पर काम वातावरण चर को परिभाषित करता है, तो, हो सकता है कोई है जो जानता है कि यहाँ मेरा उत्तर सही कर सकते हैं और इसे सरल बनाएं)

जैसा कि आप देख सकते हैं, आपके पास 2 सेवाएं, mysql-server और drupal-web हैं। Drupal-web आपकी डेटाबेस सेवा को लिंक करता है। दोनों सेवाओं में अपने पर्यावरण चर हैं।

user: root 
password: root 
host: localhost 
port: 3306 

आप एक स्थानीय mysql डेटाबेस चला रहे हैं:

+0

मेरी फाइल काम ठीक है, केवल समस्या यह है कि मैं नहीं पहुँच सकते है मेरी बाहरी से डीबी। – freemindghost

+0

यहां एक ही समस्या है, मुझे अभी भी इसका कारण नहीं मिला ... क्या आपको कुछ खबर मिली? – Charaf

9

आप की मेजबानी के लिए अपनी डीबी बंदरगाह का पर्दाफाश करने के तो बस

mysql-server: 
    image: mysql 
    ports: 
     - "3306:3306" 
    environment: 
     MYSQL_ROOT_PASSWORD: root 
     MYSQL_DATABASE: drupal 
     MYSQL_USER: drupal 
     MYSQL_PASSWORD: drupal 

जोड़ने और फिर का उपयोग कर sequal में डेटाबेस से कनेक्ट भूल गया पहले से ही, बंदरगाह

ports: 
    - "4306:3306" 

बदलने और उसके बाद के बजाय बंदरगाह 4306 से कनेक्ट ओ एफ 3306। ध्यान रखें, Drupal कंटेनर से, आप अब भी 3306

+0

स्पष्ट रूप से बंदरगाह 3306 को उजागर करने से मुझे अपने मैक से अनुक्रम समर्थक के साथ इसे एक्सेस करने की अनुमति मिली। मैं थोड़ा आश्चर्यचकित था कि यह डिफ़ॉल्ट रूप से पहले ही प्रकट नहीं हुआ था – DDS

4

मानचित्र होस्ट पोर्ट 4306 (या किसी अन्य उपलब्ध पोर्ट) की तरह mysql 3306 डोकर के लिए प्रयोग करेंगे:

mysql-server: 
     image: mysql 
    environment: 
     MYSQL_DATABASE: drupal 
     MYSQL_ROOT_PASSWORD: root 
     MYSQL_USER: drupal 
     MYSQL_PASSWORD: drupal 
    ports: 
     - "4306:3306" 

mysql डोकर से कनेक्ट करने के लिए आप में सक्षम होना चाहिए 127.0.0.1:4306

mysql -u drupal -h 127.0.0.1 -P 4306 -p 
0

मेरे मामले में साथ मैं mysql के साथ समस्या यह है: किसी भी 5 से परिवर्तन 8, और सब ठीक

संबंधित मुद्दे