2017-10-04 4 views
0

hostname -f wird während der Build-Zeit leer zurückgegeben, gibt aber den korrekten Hostnamen zurück, nachdem der Build abgeschlossen ist.Docker Compose - Falscher Hostname während des Builds

Ich brauche hostname -f, um den angegebenen Hostnamen zurückzugeben, da ich Puppet im Container ausgeführt habe.

Danke für Ihre Hilfe!

+0

Warum benötigen Sie den Hostnamen für Puppet? –

Antwort

0

Mein Vorschlag ist, dass während des Bauprozesses wird der Behälter nicht läuft ... also, wenn der Behälter nicht läuft, können Sie nicht einen Hostnamen bekommen ...

+0

Macht Sinn ... eine Chance, dass ein Hostname während der Bauzeit erzwungen werden kann? – RadiantHex

+0

Was möchten Sie mit dem Hostnamen machen? Für mich ist ein Hostname eine relative statische Sache und nicht wirklich nützlich in einer solchen Umgebung wie Docker ... –

+0

Der Masterless local dev Puppet-Konfiguration beruht auf dem Hostnamen "dev-admin.local" – RadiantHex

0

Normalerweise brauchen Sie nicht ein separate Konfiguration für Hostnamen in Docker ... Docker kommuniziert mit seinen Dienstnamen.

Wenn Sie Docker-compose und nehmen an, die folgende Konfiguration

version: "2" 
services: 
    nginx: 
    build: docker/nginx 
    ports: 
     - "80:80" 
    volumes: 
     - "${PROJECT_ROOT}:/app:ro" 
    depends_on: 
     - php 
    networks: 
     - server 
    php: 
    build: docker/php-fpm 
    expose: 
     - 9000 
    volumes: 
     - "${PROJECT_ROOT}:/app" 
    networks: 
     - server 

Da die Bilder „nginx“ und „php“ im selben Netzwerk „Server“ sind sie leicht miteinander kommunizieren können durch den anruf Name des Dienstes als Host ... So können Sie zum Beispiel eine Verbindung mit dem Container "nginx" und "ping php" herstellen ... Sie müssen sich nicht um IPs oder Hostnamen kümmern. Sie müssen also nur Ihre Konfigurationsdatei aktualisieren, in der "dev-admin.local" aufgerufen wird, und sie durch den gewünschten Host ersetzen.

Verwandte Themen