2016-07-23 4 views
3

Ich erstelle meine eigenen Dockerfile basierend auf der Jenkins Docker image nur einige vorinstallierte Pakete in das Bild (Build-essential, etc ...) hinzufügen.Verwenden von ARG-Befehl in einer Sub-Dockerfile

In der Jenkins Dockerfile verwendeten sie die ARG command, um die jenkins Benutzer und Gruppe zu erstellen: Siehe these lines. Hier

ist mein Dockerfile:

FROM jenkins 
USER root 
RUN apt-get update && apt-get install -y build-essential 
USER jenkins 

Aber wenn ich bauen es zu meinem jenkins Host-Benutzer passen, indem Sie diese Zeile mit:

docker build --tag my-jenkins \ 
    --build-arg user=jenkins \ 
    --build-arg group=jenkins \ 
    --build-arg uid=$(id -u jenkins) \ 
    --build-arg gid=$(id -g jenkins) \ 
    . 

ich diesen Fehler bekommen haben:

One or more build-args [gid group uid user] were not consumed, failing build. 

Gibt es eine Möglichkeit, dies zu tun oder ist es unmöglich?

Antwort

1

Es ist unmöglich. Das Bild ist bereits erstellt (unter Verwendung der Standardeinstellungen). Sie könnten ein schnelles Skript schreiben, um Ihr eigenes jenkins-Bild zu erstellen (die Argumente werden übergeben) und dann daraus Ihr Unterbild erstellen.