2016-12-05 3 views
1

Ich versuche, einen vollständigen WordPress-Service auf einem Container mit MariaDB und PHPMyAdmin arbeiten. Ich finde nur veraltete (wie v1 docker-komponieren) Hilfe online.Docker - Voll funktionsfähiges WordPress (WP + DB + PHPMyAdmin)

Ich versuche, mit diesem Docker-compose.yml Datei:

Bearbeitete Dateien:

version: '2' 
services: 
    wordpress: 
    image: wordpress:latest 
    networks: 
     - front 
     - back 
    ports: 
     - 8080:80 
    environment: 
     WORDPRESS_DB_PASSWORD: examplepass 
     WORDPRESS_DB_NAME: wpdb 
     WORDPRESS_TABLE_PREFIX: wp_ 
     WORDPRESS_DB_HOST: wordpress_db 
    volumes: 
     - ./wordpress-data:/var/www/html 
     - ./php/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini 
    wordpress_db: 
    image: mariadb:latest 
    environment: 
     MYSQL_ROOT_PASSWORD: examplepass 
    volumes: 
     - wordpress-db-data:/var/lib/mysql 
    networks: 
     - back 
    phpmyadmin: 
    image: phpmyadmin/phpmyadmin 
    networks: 
     - back 
    ports: 
     - 8181:80 
volumes: 
    wordpress-db-data: 
     driver: local 
networks: 
    front: 
    back: 

ich PHMA auf 8181 treffen kann, aber ich kann WP nicht treffen auf 8080

Jede Idee?

EDIT: Ich habe etwas geändert. WP läuft jetzt, aber ich kann meinen Benutzer root/examplepass nicht mit PMAdmin verbinden. Ich habe einen Fehler wie folgt #2002 - php_network_getaddresses: getaddrinfo failed: Name does not resolve — The server is not responding (or the local server's socket is not correctly configured).

+1

Post 'Docker Port $ (Docker ps -q)' – user2915097

+3

würde statt db nicht Ihre WORDPRESS_DB_HOST werden wp_db? – user3012759

+0

'Docker-Port $ (Docker ps -q)' -> '" Docker-Port "erfordert mindestens 1 und höchstens 2 Argument (e). Siehe 'docker port --help'. Verwendung: Docker-Port CONTAINER [PRIVATE_PORT [/ PROTO]] Liste Port-Zuordnungen oder eine spezifische Zuordnung für den Container – Ragnar

Antwort

1

Ich habe es endlich verstanden.

Ich brauche die var env PMA_HOST: wordpress_db auf PMA.

Also meine letzte .yml Datei:

version: '2' 
services: 
    wordpress: 
    image: wordpress:latest 
    networks: 
     - front 
     - back 
    ports: 
     - 8080:80 
    environment: 
     WORDPRESS_DB_PASSWORD: examplepass 
     WORDPRESS_DB_NAME: wpdb 
     WORDPRESS_TABLE_PREFIX: wp_ 
     WORDPRESS_DB_HOST: wordpress_db 
    volumes: 
     - ./wordpress-data:/var/www/html 
     - ./php/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini 
    wordpress_db: 
    image: mariadb:latest 
    environment: 
     MYSQL_ROOT_PASSWORD: examplepass 
    volumes: 
     - wordpress-db-data:/var/lib/mysql 
    networks: 
     - back 
    phpmyadmin: 
    image: phpmyadmin/phpmyadmin:latest 
    networks: 
     - back 
    ports: 
     - 8181:80 
    environment: 
     MYSQL_USERNAME: root 
     MYSQL_ROOT_PASSWORD: examplepass 
     PMA_HOST: wordpress_db 
volumes: 
    wordpress-db-data: 
     driver: local 
networks: 
    front: 
    back: 
1

Ehrlich gesagt denke ich, Sie nähern sich das falsch. Der beste Weg besteht darin, alle Umgebungsvariablen auf dem DB-Container so zu setzen, dass (a) die Konten und die Datenbank bereitgestellt und dann mit dem Webcontainer verknüpft werden.

Sobald der Webcontainer gestartet wird, hat er Zugriff auf die Variablen MYSQL _..., da sie vom DB-Container abgeleitet wurden. Beginnen Sie mit dem DB-Container, verbinden Sie sich mit WordPress und verlinken Sie DB mit PHPMyadmin.

+0

Ich habe gelesen, dass Links zu Gunsten von Netzwerk mit Docker-Compose v2 veraltet sind. – Ragnar

+0

Nur für Dienste, nicht für einzelne Container – Dockstar

Verwandte Themen