2016-10-26 2 views
5

Ich versuche, einen Docker Container zu erstellen, dessen Quell-Tag ich als Parameter übergeben möchte.Docker - Arg in Quelldatei erstellen

Build-Skript:

docker build \ 
    --pull=true \ 
    ... 
    --build-arg version=${version} 

Die Dockerfile:

ARG version 

FROM registry/repo:${version} 

das Lauf gibt mir den Fehler Please provide a source image with von prior to commit.

Gibt es eine Möglichkeit, die Version übergeben, um als Build-Argument ziehen und verwenden? Ich bin auf Docker Version 1.12

+0

_ "Bitte geben Sie ein Quell-Image mit vor dem Commit an" _ bedeutet, dass Sie 'FORM' verwenden müssen, bevor Sie' ARG' in Ihrer Docker-Datei verwenden können. – Marcs

+0

Hat meine Antwort Ashwini geholfen? – johnharris85

+0

@ johnharris85: Ja in gewisser Weise. Akzeptiert Ihre Antwort –

Antwort

8

According to the docs, die erste Anweisung muss FROM (oder technisch eine Parser-Richtlinie, aber nicht relevant hier), so wird dieser Ansatz wahrscheinlich nicht funktionieren. Wahrscheinlich einige Shell-Wrapper um docker build... mit einigen sed Befehl oder etwas, um die richtige Version oder eine Vorlage irgendeiner Art einzufügen.

Gareth Rushgrove had a nice talk at DockerCon16 auf Bild-Build-Tooling, die interessant sein könnten.

Update (7/2/17): Dies ist now possible to achieve since v17.06.

+0

Dies wurde seitdem geändert, siehe https://github.com/moby/moby/pull/31352 – synhershko

+0

sieht aus wie ARG kann vor kommen https://docs.docker.com/engine/reference/ builder/# verstehen-wie-arg-und-aus-interagieren – dtothefp

+1

Verfügbar seit Docker v17.05 tatsächlich. https://github.com/moby/moby/pull/31352 – Shane