Hướng Dẫn Sử Dụng Docker-Compose Trong Dự Án Laravel

Docker là một công cụ mạnh mẽ giúp quản lý và triển khai ứng dụng trong các môi trường container hóa. Với Docker, việc xây dựng, triển khai và quản lý các ứng dụng trở nên dễ dàng hơn bao giờ hết. Trong bài viết này, chúng ta sẽ cùng tìm hiểu cách sử dụng Docker-Compose để thiết lập môi trường làm việc cho một dự án Laravel, đảm bảo mọi thứ hoạt động trơn tru và hiệu quả.

Tại Sao Nên Sử Dụng Docker-Compose Cho Laravel?

Docker-Compose cho phép bạn định nghĩa và chạy nhiều container Docker cùng một lúc. Điều này rất hữu ích cho các ứng dụng Laravel, nơi bạn có thể cần phối hợp giữa nhiều dịch vụ như web server (Nginx hoặc Apache), PHP-FPM, cơ sở dữ liệu MySQL và công cụ quản lý cơ sở dữ liệu như phpMyAdmin. Nhờ vào Docker-Compose, bạn có thể dễ dàng tạo ra một môi trường hoàn chỉnh mà không cần phải cài đặt tách biệt từng phần mềm lên máy chủ của mình.

Laravel – Vài Phút Tìm Hiểu Laradock

Các Bước Thiết Lập Môi Trường Laravel Với Docker-Compose

1. Cài Đặt Docker và Docker-Compose

Trước tiên, bạn cần cài đặt Docker và Docker-Compose trên máy tính của mình. Bạn có thể truy cập trang web chính thức của Docker để tải về và cài đặt phần mềm. Sau khi cài đặt xong, hãy kiểm tra phiên bản đã cài đặt bằng câu lệnh:

docker --version
docker-compose --version

2. Tạo Project Laravel

Để bắt đầu với Laravel, bạn có thể tạo một dự án mới bằng cách sử dụng Composer. Nếu bạn chưa có Composer, Hoclaravel.vn khuyên bạn hãy cài đặt Composer trước. Sau khi cài đặt xong, thực hiện lệnh sau để tạo dự án Laravel:

composer create-project --prefer-dist laravel/laravel ten-du-an

Nếu bạn đã có mã nguồn của dự án Laravel, bạn có thể bỏ qua bước này.

READ  Laravel Zero Là Gì?

3. Tạo Dockerfile Cho PHP

Tiếp theo, bạn cần tạo một Dockerfile cho PHP để cài đặt các extension cần thiết cho Laravel. Tạo một file có tên Dockerfile trong thư mục dự án và thêm nội dung sau:

FROM php:8.0-fpm

# Cài đặt các PHP extension cần thiết
RUN docker-php-ext-install pdo pdo_mysql

# Cài đặt Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

WORKDIR /var/www/html

4. Tạo File Docker-Compose

Tiếp theo, bạn cần tạo file docker-compose.yml để định nghĩa cấu trúc của các container mà bạn sẽ sử dụng. Tạo một file có tên docker-compose.yml trong thư mục dự án và thêm nội dung dưới đây:

version: '3'

services:
  nginx:
    image: nginx:stable
    ports:
      - "8080:80"
    volumes:
      - ./ten-du-an:/var/www/html
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf

  php:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - ./ten-du-an:/var/www/html
    ports:
      - "9000:9000"

  mysql:
    image: mysql:5.7
    volumes:
      - mysql_data:/var/lib/mysql
    environment:
      MYSQL_DATABASE: laravel
      MYSQL_USER: user
      MYSQL_PASSWORD: password
      MYSQL_ROOT_PASSWORD: root_password
    ports:
      - "3306:3306"

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    ports:
      - "8081:80"
    environment:
      PMA_HOST: mysql
      PMA_PORT: 3306
      PMA_USER: user
      PMA_PASSWORD: password

volumes:
  mysql_data:

Tìm hiểu về Docker - Phần 7 - Làm việc với Docker Compose

5. Cấu Hình Nginx

Để Nginx có thể hoạt động đúng với Laravel, bạn cần tạo file cấu hình cho Nginx. Tạo một thư mục có tên nginx trong thư mục dự án, và bên trong thư mục này, tạo file default.conf với nội dung sau:

server {
    listen 80;
    server_name localhost;

    root /var/www/html/public;

    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass php:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

6. Chạy Docker-Compose

Sau khi đã cấu hình xong, bạn có thể khởi động các container bằng lệnh sau:

docker-compose up -d

Lệnh này sẽ khởi động các dịch vụ được định nghĩa trong file docker-compose.yml. Để kiểm tra trạng thái của các container, bạn có thể sử dụng:

docker-compose ps

7. Truy Cập Ứng Dụng

Bây giờ bạn có thể truy cập ứng dụng Laravel của mình thông qua trình duyệt web tại địa chỉ:

http://localhost:8080

Và bạn có thể truy cập phpMyAdmin tại địa chỉ:

http://localhost:8081

Một Số Lưu Ý

  • Nếu bạn gặp lỗi quyền truy cập, hãy kiểm tra và cấp quyền cho các thư mục hoặc tệp mà ứng dụng cần truy cập.
  • Bạn cũng có thể cần điều chỉnh các biến môi trường trong các file cấu hình để phù hợp với môi trường của bạn.
READ  Laravel Zero Là Gì?

Kết Luận

Bằng cách sử dụng Docker-Compose, bạn có thể nhanh chóng thiết lập môi trường làm việc cho dự án Laravel mà không phải lo lắng về các vấn đề cài đặt và cấu hình phức tạp. Hãy khám phá thêm các chức năng mạnh mẽ khác của Docker để tối ưu hóa quy trình phát triển của bạn!

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *