2016-05-07 3 views
0

Ich habe eine einfache Docker-compose.yml (wp Bild basiert auf ibmjstart/wp-Bluemix-Container, db Bild ist MariaDB)Wordpress kann nicht mysql Container verknüpft auf IBM Bluemix mit Docker komponieren

db: 
    image: registry.eu-gb.bluemix.net/foo/db 
    environment: 
    MYSQL_ROOT_PASSWORD: examplepass 
    ports: 
    - 3306:3306 
    volumes: 
    - /var/lib/mysql 

wp: 
    image: registry.eu-gb.bluemix.net/foo/wp 
    links: 
    - db:mysql 
    ports: 
    - 80:80 
siehe

nach docker compose up -d Ausführung ich

error: missing WORDPRESS_DB_HOST and MYSQL_PORT_3306_TCP environment variables 
    Did you forget to --link some_mysql_container:mysql or set an external db 
    with -e WORDPRESS_DB_HOST=hostname:port? 

Wie Sie sehen können, ist der db Container verknüpft.

Wenn ich das gleiche tun, ohne Docker-compose,

mit gut funktioniert
$ cf ic run -v mysql-vol:/var/lib/mysql --name wpdb -d registry.eu-gb.bluemix.net/foo/db  
$ cf ic run -e MYSQL_ROOT_PASSWORD=my-secret-pw -v web-files:/var/www/html/ --link wpdb:mysql -d registry.eu-gb.bluemix.net/foo/wp 

Alles.


ich Export Docker Variablen nach cf ic login

Weitere Informationen:

[email protected]:~/test/compose# docker-compose --version 
docker-compose version 1.7.0, build 0d7bf73 
[email protected]:~/test/compose# docker --version 
Docker version 1.10.3, build 20f81dd 
[email protected]:~/test/compose# cf --version 
cf version 6.15.0+fa1bfe2-2016-01-13 
[email protected]:~/test/compose# cf ic --version 
Docker version 1.10.3, build 20f81dd 

UPDATE: Wie ich verstehe, wird dieses Problem durch die Namensgebung verursacht:

Diese docker-compose.yml gibt einen Fehler aus

db: 
    image: registry.eu-gb.bluemix.net/foo/db 
    environment: 
    MYSQL_ROOT_PASSWORD: examplepass 
    container_name: 
    wpdb 
    ports: 
    - 3306:3306 
    volumes: 
    - /var/lib/mysql 

wp: 
    image: registry.eu-gb.bluemix.net/foo/wp 
    links: 
    - wpdb:mysql 
    ports: 
    - 80:80 

FEHLER: Dienst "wp" hat eine Verbindung zum Dienst "wpdb", der nicht existiert.

Wenn Sie jedoch den Service und den Container gleich benennen, ist die Syntax in Ordnung.

db: 
    image: registry.eu-gb.bluemix.net/foo/db 
    environment: 
    MYSQL_ROOT_PASSWORD: examplepass 
    container_name: 
    db 
    ports: 
    - 3306:3306 
    volumes: 
    - /var/lib/mysql 

wp: 
    image: registry.eu-gb.bluemix.net/foo/wp 
    links: 
    - db:mysql 
    ports: 
    - 80:80 

Obwohl die Syntax in Ordnung ist und der Behälter verbunden ist, die Wordpress-Container protokolliert diese

Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 10  
MySQL Connection Error: (2002) php_network_getaddresses: getaddrinfo failed: Name or service not known 

Ist das ein Fehler in Bluemix? Sieht aus wie ein/etc/hosts/verwandtes Problem

Sorry für einen langen Beitrag :)

+0

Könnten Sie bitte lassen Sie mich die Umgebung kennen Sie Ihre Container laufen? 'cf ic info | grep Umwelt –

+0

@AlexdaSilva 'Umgebungsname: prod-lon02-vizio1' – bartimar

Antwort

2

@bartimar Ja, das Problem auf die /etc/hosts Datei verwendet. Er muss einen Eintrag für den DB-Container haben, erstellt ihn jedoch nicht.

Ich kann Ihr Problem in der prod-lon02-vizio1 Umgebung neu erstellen, aber es funktioniert gut in der prod-lon02-kraken1 Umgebung.

Meine Empfehlung, ob Sie manuell in die prod-lon02-kraken1-Umgebung migrieren, um docker-compose.yml mit IBM-Containern zu verwenden. Alle Umgebungen werden automatisch am 25. Mai automatisch migriert.

$ cf ic reprovision 

Bitte beachten Sie, dass Ihre Bilder migriert werden an die neue Umgebung, aber alle laufenden Container gelöscht, und Sie müssen neu erstellen sie in der neuen Umgebung:

Um den folgenden Befehl wandern einfach ausgeführt werden. Verwenden Sie diese Option also mit Vorsicht.

Für weitere Informationen überprüfen Sie die unten stehenden Link:

https://developer.ibm.com/bluemix/2016/03/24/new-deployment-architecture-for-containers/?linkId=22660520

+0

Danke. Bedeutet dies, dass alle Container am 25. Mai automatisch gelöscht werden? – bartimar

+0

Das ist mein Verständnis für den letzten Absatz in der Dokumentverknüpfung, die ich der Antwort hinzugefügt habe. Wenn Sie die Migration jedoch vor dem 25. Mai durchführen, werden Ihre Container nicht gelöscht, da Sie bereits in der neuen Umgebung sind. –