2017-04-21 1 views
3

In meinem Docker komponieren Datei gibt es ein dynamisches Feld, das ich während der Ausführung generieren möchte. Eigentlich ist es ein String-Vorlage:Pass Argument zu Docker komponieren

environment: 
    - SERVER_URL:https://0.0.0.0:${PORT} 

Und ich möchte konfigurieren, dass diese PORT Parameter dynamisch

docker-compose run <service> PORT=443 

In documentation gibt es ARGS Parameter Ich glaube, ich verwenden können. Aber es gibt keine Informationen, wie kann ich die innerhalb der Datei erstellen verwenden

+0

haben einen Blick auf https://docs.docker.com/compose/compose-file/#compose-documentation es scheint, Ihre Frage zu beantworten – user2915097

+1

Dies ist die Lösung von Umgebungsvariablen. Ich möchte stattdessen Befehlszeilenargumente verwenden – deeptowncitizen

+0

Lesen Sie [diese Antwort] (https://stackoverflow.com/questions/35796353/can-i-pass-arguments-into-docker-compose-the-command-config-option?answertab = aktiv # tab-top) und seine Kommentare. –

Antwort

1

In Docker-Compose, Argumente sind verfügbar und nützlich nur in dockerfile. Sie können angeben, was Sie in der Ebene tun voraus wie folgt vor:

#dockerfile 
ARG PORT 
ENV SERVER_URL "https://0.0.0.0:$PORT" 

Ihr Port kann in Ihrem Docker-compose.yml eingestellt werden:

build: 
    context: . 
    args: 
    - PORT=443 

Es ist eigentlich eine Umgebungsvariable in jedem Fall . Sie können es durch Ihren Fahrbefehl übergeben, wenn das zu Ihnen paßt:

PORT=443 docker-compose run <service> 
#or 
docker-compose run <service> -e PORT=443 
+4

Das ist zum Kotzen, ich möchte in der Lage sein, einen vorgefertigten Container herunterzuladen und ihn mit den von mir gewählten Laufzeitargumenten auszuführen. Die Möglichkeit, sie in docker-compose aufzulisten, sollte grundlegende Funktionalität sein. Ich werde nur den Einstiegspunkt überschreiben. – Dagrooms