2017-07-04 1 views
1

Ich arbeite an Docker Image, ich bin ein Anfänger auf Docker. Ich habe ein Docker Image, aber ich möchte mein Docker Image so aktualisieren, dass mein Docker Image die eine externe URL wie: - und die weitere Verarbeitung darauf annimmt.So stellen Sie externe URL Docker Bild

Ich habe keine Ahnung, wie das geht, ich bin völlig neu auf Docker und habe nur ein grundlegendes Verständnis von Docker.

+0

Hallo R bin, du und dieser [Ram] (https://stackoverflow.com/questions/44902919/how-to-access-application-url-hosted-in-docker-container) Typ fragen sehr ähnliche Fragen. Bist du das Gleiche oder ist es nur ein Zufall? – Robert

+0

Nein, wir sind nicht dasselbe, es ist nur ein Zufall, können Sie mir bitte helfen, dieses Problem zu lösen. –

+0

Sicher. Welche Art von Bewerbung hast du? – Robert

Antwort

0

Von dem, was ich verstehen kann, möchten Sie, dass Ihr neues Bild eine externe URL als Parameter akzeptiert und dann mit der Verarbeitung beginnt. Es kann getan werden, indem man ein bash Skript als ein ENTRYPOINT Skript für das neue Bild schreibt und das Skript empfängt Parameterwert über CMD.

Die Dockerfile wird in etwa so aussehen:

FROM CURRENT_IMAGE 
COPY custom-entrypoint.sh /root/ 
WORKDIR /root 
ENTRYPOINT ["./custom-entrypoint.sh"] 

das Bild Erstellen und starten Sie nun den Container docker run verwenden Sie Ihre URL als Parameter übergeben kann und dass als $1 in Skript verwenden. Z. B:

docker run YOUR_IMAGE MY_URL 
+0

Ich führe mein Docker-Image über docker-compose.yml aus, wie ich den externen Parameter aus dieser Datei hinzufügen kann. –

+0

können Sie eine Umgebungsvariable (https://docs.docker.com/compose/environment-variables/) setzen und diese in einem Skript auch über docker-compose.yml verwenden. –

1

Mit Docker-komponieren Sie Umgebungsvariablen wie folgt zur Verfügung stellen kann:

version: "3" 
services: 
    myapp: 
    image: your-image 
    environment: 
     - FOO=http://example.com 
     - BAR=456 

Und je nach Anwendungssprache, können Sie auf sie zuzugreifen. Dh für Python:

import os 
foo = os.environ.get("FOO") 
bar = os.environ.get("BAR") 

Q., wenn ich will es so dynamisch setzen, was ist, getan werden müssen, - FOO=<dynamic value>

Sie können etwas tun:

version: "3" 
services: 
    myapp: 
    image: your-image 
    environment: 
     - FOO 
     - BAR 

Verwenden Sie wie folgt:

$ export FOO=http://example.com 
$ export BAR=456 
$ docker-compose up 
+0

wenn ich es als dynamisch setzen möchte, was getan werden muss, - FOO =

+0

@RavataRam, siehe meine Bearbeitung – Robert