2017-11-07 11 views
0

Wir haben ein Docker-Projekt, das von Entwicklern mit Windows, Mac oder Linux geteilt wird.Dockerfile: überprüfen, ob Build-Maschine Windows ist

Leider können wir nicht control the way the project is cloned, so dass Windows-Entwickler am Ende mit schlechten Zeilenenden beim Erstellen des Docker-Image enden und der Build kann deswegen fehlschlagen.

um dieses Problem zu beheben, haben wir eine Linie in unsere Dockerfile hinzugefügt alle Windows-Zeilenende mit Unix-Zeilenenden zu ersetzen, bevor der Build-Prozess gestartet wird:

ADD . /app 
RUN find . -type f -exec sed -i 's/\x0d//g' {} \+ 

Aber das Problem ist, ist die Build jetzt viel langsamer, sogar auf Linux- und Mac-Boxen.

Ich möchte RUN diesen Befehl nur, wenn der Build auf einer Windows-Maschine geschieht. Aber gibt es eine Möglichkeit für die Dockerfile das zu erkennen?

Antwort

0

Können Sie versuchen die „Hinzufügen ...“ Zeile für so etwas zu ersetzen:

RUN git clone <your.repo.git> src 
ADD src /app 

Ich habe nicht getestet, aber die Dateien werden vom git Ihrer Dockerfile Basis-Image erstellt werden, so Jeder sollte die gleichen Dateien haben.