2017-04-13 6 views
0

habe ich Anwendung mit Dockerfile gebaut, der definiert:Wie hängt man ein Argument an einen Containerbefehl an?

CMD node dist/bin/index.js 

Ich möchte „anhängen“ einen Parameter auf den Befehl, wie es in Dockerfile definiert ist, das heißt ich das Programm als node dist/bin/index.js foo ausgeführt werden soll.

In Land, das ich bin in der Lage, dies zu erreichen über:

docker build --tag test . 
docker run test foo 

In ich nicht command verwenden kann, weil das die ENTRYPOINT außer Kraft gesetzt wird. Ich kann args nicht verwenden, weil das die in der Dockerfile definierte cmd überschreiben wird. Es scheint, dass meine einzige Option ist:

cmd: ["node", "dist/bin/index.js", "foo"] 

Gibt es eine Möglichkeit, ein Argument zu einem Container-Befehl anhängen, ohne die gesamte Docker CMD Definition neu zu definieren?

Antwort

0

Ich nicht dort ist eine Möglichkeit zu erreichen, was Sie wollen, außer für die Einstellung der cmd, wie Sie erwähnt haben.

0

Lassen Sie mich wissen, wenn ich Ihre Frage missverstanden habe, aber wenn Sie nur einen Parameter an den POD übergeben möchten, können Sie Ihren Befehl innerhalb des Einstiegspunktskripts ausführen und eine Umgebungsvariable verwenden, die Sie an den Container für diesen Befehl übergeben. Dies sollte in jeder Pod-Spezifikation funktionieren (z. B. als Teil der Deployment-Beschreibung).

Beispiel

apiVersion: v1 
kind: Pod 
metadata: 
    name: envar-demo 
    labels: 
    purpose: demonstrate-envars 
spec: 
    containers: 
    - name: envar-demo-container 
    image: gcr.io/google-samples/node-hello:1.0 
    env: 
    - name: DEMO_GREETING 
     value: "Hello from the environment" 

mehr für diese doc sehen.

Verwandte Themen