Składnia – gdy jest już gotowy Dockerfile
# docker build [OPCJE] <ŚCIEŻKA lub ADRES URL> | - - ścieżka lub URL - określa kontekst, położenie plików - COPY, ADD, ... szukają plików w kontekście budowania - ścieżka określa wszystkie podkatalogi, - . (kropka) bieżący katalog z plikiem Dockerfile - URL - repozytorium git z wszystkimi podmodułami - cały kontekst jest wysyłany do demona budowania # docker build -help
# docker build . # docker build -t john/myapp . - oznaczenie obrazu, tag (-t) # docker build -f /var/my_files/Dockerfile . - położenie Dockerfile poza aktualnym katalogiem
.dockerignore – wyklucza pliki, katalogi (tymczasowe, logi) z procesu budowania
# cat .dockerignore - powinien znajdować się w kontekście (np. katalogu lokalnym z którego budujemy obraz) */tmp* - pliki tmp w podkatalogach 1-go poziomu */*/tmp* - tmp w podkatalogach 2-go poziomu **/*.log - logi w podkatalogach dowolnie głęboko zapisanych (**) tmp? - tmp z dowolnym znakiem (?) w katalogu głównym kontekstu !important.log - wyłączenie z ignorowania (!) - wykluczenia powinny być na końcu
Zalecenia:
1. Rozpoczęcie od pustego kontekstu budowania 2. Dodanie tylko tego co niezbędne 3. Użycie pliku .dockerignore 4. Zasada "Nie będziesz tego potrzebował" 5. Minimalna liczba warstw (instrukcji Dockerfile) - połączyć te same instrukcje w jedną 6. Jeśli jedna usługa zależy od innej powinny działać w różnych, połączonych ze sobą kontenerach
# docker images - sprawdzenie