CodeGym /Kursy /Docker SELF /Tworzenie Dockerfile dla każdego serwisu

Tworzenie Dockerfile dla każdego serwisu

Docker SELF
Poziom 23 , Lekcja 2
Dostępny

3.1 Tworzenie Dockerfile dla frontendu (ReactJS)

Na tym etapie stworzymy Dockerfile dla każdego z trzech serwisów naszej aplikacji wielokontenerowej: frontendu na ReactJS, backendu na Python (Flask) i bazy danych PostgreSQL. Dockerfile definiuje instrukcje do tworzenia obrazu Docker dla każdego serwisu.

Utwórz plik Dockerfile w katalogu frontend:

Terminal

cd frontend
touch Dockerfile

Zawartość Dockerfile dla frontendu:

Terminal

# Używamy podstawowego obrazu node
FROM node:14

# Ustawiamy katalog roboczy
WORKDIR /app

# Kopiujemy package.json i package-lock.json do instalacji zależności
COPY package*.json ./

# Instalujemy zależności
RUN npm install

# Kopiujemy pozostałe pliki projektu
COPY . .

# Ustawiamy port 3000
EXPOSE 3000

# Uruchamiamy aplikację
CMD ["npm", "start"]

Ten Dockerfile wykonuje następujące kroki:

  1. Używa podstawowego obrazu node:14.
  2. Ustawia katalog roboczy /app.
  3. Kopiuje pliki package.json i package-lock.json.
  4. Instaluje zależności za pomocą npm install.
  5. Kopiuje wszystkie pliki projektu do katalogu roboczego.
  6. Otwiera port 3000 dla dostępu do aplikacji.
  7. Uruchamia aplikację za pomocą npm start.

3.2 Tworzenie Dockerfile dla back-endu (Flask)

Utwórz plik Dockerfile w katalogu backend:

Terminal

cd backend
touch Dockerfile

Zawartość Dockerfile dla back-endu:

dockerfile

# Używamy bazowego obrazu python
FROM python:3.12

# Ustawiamy katalog roboczy
WORKDIR /app

# Kopiujemy requirements.txt do instalacji zależności
COPY requirements.txt ./

# Instalujemy zależności
RUN pip install --no-cache-dir -r requirements.txt

# Kopiujemy pozostałe pliki projektu
COPY . .

# Określamy port 5000
EXPOSE 5000

# Uruchamiamy aplikację
CMD ["python", "run.py"]

Ten Dockerfile wykonuje następujące kroki:

  1. Używa bazowego obrazu python:3.12.
  2. Ustawia katalog roboczy /app.
  3. Kopiuje plik requirements.txt.
  4. Instaluje zależności za pomocą pip install.
  5. Kopiuje wszystkie pliki projektu do katalogu roboczego.
  6. Otwiera port 5000 dla dostępu do aplikacji.
  7. Uruchamia aplikację za pomocą python run.py.

3.3 Tworzenie Dockerfile dla bazy danych (PostgreSQL)

Dla bazy danych PostgreSQL będziemy używać oficjalnego obrazu, dlatego tworzenie własnego Dockerfile nie jest wymagane. Zamiast tego, skonfigurujemy PostgreSQL za pomocą docker-compose.yml.

3.4 Budowa i testowanie obrazów Docker

Po stworzeniu Dockerfile dla frontend i backend, ważne jest przetestowanie ich budowy.

Budowa obrazu Docker dla frontendu:

Terminal

cd frontend
docker build -t task_management_frontend .

Budowa obrazu Docker dla backendu:

Terminal

cd ../backend
docker build -t task_management_backend .

Sprawdzanie działania kontenerów:

Uruchomienie kontenera dla frontendu:

Terminal

docker run -p 3000:3000 task_management_frontend

Uruchomienie kontenera dla backendu:

Terminal

docker run -p 5000:5000 task_management_backend

Wejdź na adres http://localhost:3000, aby sprawdzić działanie frontendu, oraz http://localhost:5000, aby sprawdzić działanie backendu.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION