Laravel i Docker: jak korzystać z Docker w Laravelu

Laravel i Docker: jak korzystać z Docker w Laravelu

Docker i Laravel to dwa popularne narzędzia, które pozwalają na tworzenie, testowanie i wdrażanie aplikacji webowych. Docker to platforma do konteneryzacji aplikacji, która umożliwia łatwe tworzenie, uruchamianie i zarządzanie izolowanymi kontenerami. Laravel to framework PHP, który oferuje wiele funkcjonalności do tworzenia aplikacji webowych, takich jak obsługa baz danych, uwierzytelnianie użytkowników, routowanie, migracje i wiele innych. W połączeniu, Docker i Laravel umożliwiają prostsze i bardziej efektywne tworzenie, testowanie i wdrażanie aplikacji webowych.

Wprowadzenie do Docker i Laravel

Docker i Laravel to dwa popularne narzędzia, które pozwalają na tworzenie, testowanie i wdrażanie aplikacji webowych. Docker to platforma do konteneryzacji aplikacji, która umożliwia łatwe tworzenie, uruchamianie i zarządzanie izolowanymi kontenerami. Laravel to framework PHP, który oferuje wiele funkcjonalności do tworzenia aplikacji webowych, takich jak obsługa baz danych, uwierzytelnianie użytkowników, routowanie, migracje i wiele innych. W połączeniu, Docker i Laravel umożliwiają prostsze i bardziej efektywne tworzenie, testowanie i wdrażanie aplikacji webowych.

Instalacja i konfiguracja Docker i Laravel

Aby rozpocząć pracę z Dockerem i Laravel, musimy najpierw zainstalować oba narzędzia. Docker można pobrać i zainstalować z oficjalnej strony internetowej, a następnie skonfigurować Dockerfile i docker-compose. Dockerfile jest plikiem tekstowym zawierającym instrukcje, które definiują, jakie narzędzia i aplikacje są potrzebne do utworzenia kontenera Docker. Docker Compose umożliwia uruchamianie wielu kontenerów Docker jednocześnie i umożliwia łatwe zarządzanie nimi.

Po zainstalowaniu Docker i Docker Compose, należy zainstalować Laravel. Laravel można zainstalować za pomocą narzędzia do zarządzania pakietami PHP – Composer. Należy wykonać polecenie „composer create-project –prefer-dist laravel/laravel <nazwa-aplikacji>” w konsoli, aby utworzyć nowy projekt Laravel.

Po utworzeniu projektu Laravel, należy skonfigurować pliki środowiskowe (.env) i ustawienia bazy danych. W pliku .env należy ustawić zmienne środowiskowe, takie jak klucz aplikacji, nazwa bazy danych, użytkownik i hasło. W pliku konfiguracyjnym database.php należy ustawić sterownik bazy danych, nazwę bazy danych, użytkownika i hasło.

Tworzenie kontenerów Docker dla aplikacji Laravel

Po skonfigurowaniu Docker i Laravela, możemy przejść do tworzenia kontenerów Docker dla aplikacji Laravela. Kontenery Docker to izolowane środowiska uruchomieniowe, w których działa aplikacja webowa. W kontenerze Docker znajdują się wszystkie narzędzia i zależności potrzebne do uruchomienia aplikacji webowej.

Aby utworzyć kontener Docker dla aplikacji Laravela, należy utworzyć plik Dockerfile w katalogu głównym projektu Laravela. Dockerfile zawiera instrukcje, które definiują, jakie narzędzia i aplikacje są potrzebne do utworzenia kontenera Docker. Poniżej przedstawiamy przykładowy plik Dockerfile dla aplikacji Laravela:

FROM php:7.4-fpm

RUN apt-get update && apt-get install -y \
    git \
    unzip \
    libpq-dev \
    libzip-dev

RUN docker-php-ext-install pdo pdo_pgsql zip

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

WORKDIR /var/www/html

COPY . .

RUN composer install --no-dev --prefer-dist --no-interaction

RUN chown -R www-data:www-data storage bootstrap/cache

CMD php-fpm

W pliku Dockerfile zdefiniowano następujące kroki:

  1. Zastosowanie obrazu php: 7.4-fpm jako bazowego.
  2. Zainstalowanie pakietów, takich jak git, unzip, libpq-dev, libzip-dev.
  3. Zainstalowanie rozszerzeń PHP, takich jak pdo, pdo_pgsql i zip.
  4. Instalacja Composer.
  5. Skopiowanie plików z bieżącego katalogu do katalogu /var/www/html w kontenerze.
  6. Zainstalowanie zależności za pomocą Composer.
  7. Ustawienie uprawnień na katalogi storage i bootstrap/cache.
  8. Uruchomienie serwera PHP-FPM.

Aby uruchomić kontener Docker, należy utworzyć plik docker-compose.yml w katalogu głównym projektu Laravela. Poniżej przedstawiamy przykładowy plik docker-compose.yml dla aplikacji Laravela:

version: "3"

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - .:/var/www/html
    ports:
      - "8000:8000"
    environment:
      - DB_HOST=db
      - DB_PORT=5432
      - DB_DATABASE=laravel
      - DB_USERNAME=laravel
      - DB_PASSWORD=secret
  db:
    image: postgres
    environment:
      - POSTGRES_DB=laravel
      - POSTGRES_USER=laravel
      - POSTGRES_PASSWORD=secret

W pliku docker-compose.yml zdefiniowano następujące usługi:

  1. Usługa app, która uruchamia kontener Docker dla aplikacji Laravela.
  2. Usługa db, która uruchamia kontener Docker dla bazy danych PostgreSQL.

Aby uruchomić kontenery Docker, należy wykonać polecenie „docker-compose up” w konsoli. Aplikacja webowa będzie dostępna pod adresem „http://localhost:8000„.

Zarządzanie kontenerami Docker

Po utworzeniu kontenerów Docker dla aplikacji Laravela, możemy zarządzać nimi za pomocą narzędzi takich jak docker ps, docker logs, docker exec i docker stop. Komenda „docker ps” wyświetla listę działających kontenerów, a „docker logs” umożliwia wyświetlenie dzienników kontenera. Komenda „docker exec” umożliwia uruchomienie polecenia w kontenerze, a „docker stop” służy do zatrzymywania kontenera.

Możemy również dodawać i usuwać kontenery Docker wraz z ich usługami, aby dostosować środowisko aplikacji. Na przykład, aby dodać nowy kontener, należy zmodyfikować plik docker-compose.yml, dodać nową usługę i uruchomić kontener za pomocą komendy „docker-compose up”. Aby usunąć kontener, należy uruchomić polecenie „docker-compose down”.

Wdrażanie aplikacji Laravela z Dockerem

Wdrożenie aplikacji Laravela z Dockerem jest prostsze i bardziej efektywne niż tradycyjne metody wdrażania. Aby wdrożyć aplikację Laravela z Dockerem, należy najpierw przygotować pliki do wdrożenia, takie jak plik Dockerfile i plik docker-compose.yml. Następnie należy umieścić te pliki w repozytorium Git i skonfigurować usługę automatycznego wdrażania, taką jak Heroku lub Amazon Web Services. Po skonfigurowaniu usługi automatycznego wdrażania, aplikacja będzie automatycznie wdrażana po każdej zmianie w repozytorium Git.

Podsumowanie i wnioski

Docker i Laravel to potężne narzędzia, które ułatwiają tworzenie, testowanie i wdrażanie aplikacji webowych. Dzięki Dockerowi można łatwo tworzyć i zarządzać kontenerami, a dzięki Laravelowi można szybko tworzyć i wdrażać aplikacje webowe. Połączenie tych dwóch narzędzi pozwala na łatwe i efektywne tworzenie, testowanie i wdrażanie aplikacji webowych. W artykule omówiliśmy, jak korzystać z Docker w Laravelu, aby uzyskać maksymalne korzyści. Dzięki Dockerowi i Laravelowi możemy tworzyć aplikacje webowe szybciej i łatwiej, co przyspiesza proces tworzenia i wdrażania aplikacji webowych.

Udostępnij ten post

Dodaj komentarz

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