Dockerfile – plik tekstowy, bez rozszerzenia w katalogu głównym projektu. Dodajemy do repozytorium git. Buduje nowy obraz w oparciu o obraz bazowy.
- # to jest komentarz - instrukcje piszemy WIELKIMI LITERAMI (mimo iż Docker nie rozróżnia wielkości liter) - każda instrukcja tworzy nową warstwę - należy scalać wiele instrukcji w jedną (o ile to możliwe) - ważna jest kolejność - w tej kolejności będą tworzone warstwy - ostatnie instrukcje to CMD, ENTRYPOINT
# cd /my/project # ls Dockerfile # docker build - przetwarza plik Dockerfile
FROM <obraz> - piewsza instrukcja. Doker użyje tego obrazu bazowego (latest)
ADD <host_files> <container_files> - kopiuje pliki z hosta, url do kontenera, archiwa roztarowuje Ścieżka hosta (źródłowa): - jest względna wzgl. kontekstu budowania (PATH) zwykle katalog projektu - może zawierać znaki specjalne: *, ? - podano końcowy / - katalog, zawartość skopiowana bez tworzenia nowego katalogu - nie podano końcowego slasha - plik(i), utworzony zostanie nowy katalog (plik) wraz z zawartością - .zip, .tar - zostaną rozpakowane - można podać URL jako źródło plików Ścieżka docelowa (kontenera): - bezwzględna i nie może zawierać znaków specjalnych - lub względna wzgl. WORKDIR - podano końcowy / - identyfikuje katalog - nie podano końcowego slahsa - identyfikuje plik
COPY - <host_files> <container_files> - prefefowana (zamiast ADD) kopiuje pliki z hosta do kontenera - składnia taka jak ADD ograniczona do kopiowania lokalnego