Dockerfile CMD vs ENTRYPOINT

CMD oraz ENTRYPOINT to dwie opcje, gdzie możliwe jest wprowadzenie komendy uruchamianej przy podnoszeniu kontenera (docker run). Przykładowo:

FROM maven

CMD ["mvn", "clean"]

zrobi to samo co:

FROM maven

ENTRYPOINT ["mvn", "clean"]

przy uruchomieniu w następujący sposób:

docker build . -t my_maven
docker run my_maven

Ale jeśli chcemy skorzystać z możliwości wpisania dodatkowych komend z poziomu polecenia run, to:

CMD jest nadpisywany

Posiadając obraz z użytą opcją CMD i uruchamiając kontener w następujący sposób:

docker run my_maven install

uruchomimy komendę:

z poziomu kontenera. A to racji tego, że CMD jest nadpisywany. Czyli, żeby uzyskać komendę mvn clean install należy wprowadzić:

docker run my_maven mvn clean install

ENTRYPOINT stanowi punkty wyjściowy dla

Posiadając obraz używający ENTRYPOINT i używając polecenia:

docker run my_maven install

faktycznie uruchomimy:

ENTRYPOINT nie jest nadpisywany. Dodatkowe komendy są doklejane.

Pozostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *