
Persistencja danych z użyciem Bind Mounts (Dev Mode)
W poprzednim wpisie poznaliśmy named volumes, które pozwalają przechowywać dane aplikacji niezależnie od kontenera. Teraz przyjrzymy się innej technice – bind mounts – szczególnie przydatnej podczas pracy deweloperskiej.
Czym są Bind Mounts?
Bind mount to sposób, w jaki możemy podłączyć katalog z naszego hosta (komputera) bezpośrednio do kontenera Dockera. Dzięki temu kontener ma dostęp do bieżących plików źródłowych i reaguje natychmiast na ich zmiany – bez konieczności ponownego budowania obrazu.
1. Przejście do katalogu aplikacji
Otwórz terminal i przejdź do katalogu, w którym znajduje się Twoja aplikacja:
cd /path/to/getting-started/app
2. Uruchomienie kontenera w trybie deweloperskim
Wykonaj polecenie:
docker run -dp 3000:3000 \
-w /app -v "$(pwd):/app" \
node:18-alpine \
sh -c "yarn install && yarn run dev"
Co oznaczają parametry?
-w /app
– ustawia katalog roboczy kontenera na/app
.-v "$(pwd):/app"
– tworzy bind mount, który łączy bieżący katalog hosta ($(pwd)
) z katalogiem/app
w kontenerze.node:18-alpine
– lekki obraz Node.js, na którym uruchamiamy aplikację.yarn install && yarn run dev
– instalacja zależności i start w trybie developerskim.
3. Podgląd logów kontenera
Aby zobaczyć logi aplikacji w czasie rzeczywistym:
docker logs -f <container-id>
<container-id>
uzyskasz poleceniem:
docker ps
4. Wprowadzenie zmian w kodzie
Otwórz plik:
src/static/js/app.js
Na linii 109 zmień:
{Submitting ? 'Adding...' : 'Add item'}
na:
{Submitting ? 'Adding...' : 'Add'}
5. Podgląd zmian w przeglądarce
Dzięki bind mountowi zmiana w kodzie zostanie automatycznie odzwierciedlona w aplikacji – wystarczy odświeżyć stronę w przeglądarce na http://localhost:3000.