Compose: Umgebungsvariablen werden bei Verwendung von Docker-Compose über ssh nicht festgelegt

Erstellt am 29. Dez. 2016  ·  4Kommentare  ·  Quelle: docker/compose

Hallo,

Gegeben docker-compose 1.9.0 und die folgende docker-compose.yml:

version: '2'
services:
kafka:
image: wurstmeister/kafka
environment:
KAFKA_ADVERTISED_HOST_NAME: ${HOSTNAME}

Wenn ich den folgenden Befehl ausführe:

ssh [email protected] "docker-compose up -d

Dann wird die Umgebungsvariable hostname nicht erkannt. Ich erhalte die folgende Nachricht:

Die Variable HOSTNAME ist nicht festgelegt. Standardmäßig wird eine leere Zeichenfolge verwendet.

Wenn ich den gleichen Befehl auf der Host-Leiste mit dem Benutzer "foo" ausführe, wird der Fehler nicht angezeigt. Das Gleiche gilt, wenn ich mich zuerst mit ssh verbinde und dann den Befehl ausführe.
Dies ist ein großes Problem für uns. Dieser Workflow findet in unserem CI statt.

Die einzige Problemumgehung, die wir gefunden haben, besteht darin, das folgende Skript zu schreiben:

#!/bin/bash
export HOSTNAME=${HOSTNAME}
docker-compose up -d

Und führen Sie es durch ssh aus .. Was nicht gut aussieht ..

kinquestion

Hilfreichster Kommentar

Ich fand das relevant. bash exportiert standardmäßig nicht $HOSTNAME , was erklärt, warum es von docker-compose nicht gesehen wird.

Ich konnte lokal in meiner Ubuntu 16.04-Umgebung reproduzieren, sodass ich bestätigen kann, dass dies auch nichts mit SSH zu tun hat.

Alle 4 Kommentare

Nun, passiert das nicht, weil Sie beim direkten Ausführen des Befehls über ssh keine Shell öffnen? Bedeutet das, dass einige Umgebungsvariablen wie $HOSTNAME nicht gesetzt werden?

Sieht so aus, als ob Ihr Problem mit UNIX und / oder SSH zusammenhängt. Ich sehe auf Compose-Ebene nichts, was dagegen getan werden kann.

Das ist was ich gedacht habe. Die folgende Befehlsumgehung funktioniert jedoch. Dies bedeutet, dass die Variable HOSTNAME während der SSH-Sitzung korrekt festgelegt wurde. Also ich weiß nicht warum komponiere erkenne es nicht ... Das ist komisch.

Ich fand das relevant. bash exportiert standardmäßig nicht $HOSTNAME , was erklärt, warum es von docker-compose nicht gesehen wird.

Ich konnte lokal in meiner Ubuntu 16.04-Umgebung reproduzieren, sodass ich bestätigen kann, dass dies auch nichts mit SSH zu tun hat.

@ shin- @made Wie man das unter Ubuntu behebt, bitte klären?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen