[Phần 1] Khám phá Laradock - A full PHP development environment for Docker

Chào các bạn, Thời gian gần đây, thì Docker là một hot trending. Bám theo trending này, hôm nay mình giới thiệu một package có đầy đủ toy cho PHP/Laravel phát triển.

  1. Giới thiệu Laradock
  • Cung cấp môi trường phát triển đầy đủ cho PHP.
  • Tích hợp sẵn các Image, được cấu hình sẵn để phục vụ cho việc development.
  • Ngoài hỗ trợ Laravel, package này còn hỗ trợ cho các framework khác: CodeIgniter, Symfony,... hoặc CMS: Wordpress, Drupal. 1.1 Các tính năng nổi bật
  • Hỗ trơ version mới nhất của PHP: 7.1, 7.0 hoặc 5.6
  • Hỗ trợ nhiều database thông dụng, phổ biến: MySQL, Postgres, MariaDB…
  • Các software/service chạy trên các container riêng biệt: PHP-FPM, NGINX, PHP-CLI…
  • Dễ dàng customize các container bằng cách chỉnh sửa file Dockerfile
  • Ta có thể sử dụng laradock cho từng project hoặc nhiều project.
  • Dễ dàng install/remove các service container thông qua biến môi trường (Hướng dẫn ở phần 3)
  • Cấu trúc clear, dễ dàng xem và chỉnh sửa tùy thích.
  • Ngoài ra còn rất nhiều tính năng khác, bạn có thể xem ở đây
  1. Cài đặt cơ bản
  • Để cài đặt được Laradock trên project. Ta vào trang chủ hoặc GitHub để clone package về.
git clone https://github.com/Laradock/laradock.git
  • Vào thư mục laradock trong project.
cd /path_to_project/laradock
  • Tạo file môi trường, .env, bằng cách:
cp env-example .env
  • Cuối cùng là run project với 2 container là NGINXMySQL
docker-compose up -d nginx mysql
  1. Cấu hình Laradock Trong bài viết này, mình sẽ giới thiệu cách cấu hình và run được các container là: PHP-FPM, NGINX, MySQL nhé.

3.1. Cài đặt PHP-FPM

  • Trong version hiện tại, laradock hỗ trợ PHP 5.6 trở lên. Ta có thể cài đặt PHP version theo yêu cầu của mỗi project. Như sau: Bước 1:
  • Vào folder laradock/php-fpm. Tại đây ta có thể thấy laradock hỗ trợ cho PHP 5.6, PHP 7.0 và PHP 7.1 thông qua các Dockerfile-56, Dockerfile-70,...

Bước 2:

  • Mở file docker-compose.yml trong folder laradock.
  • Tìm đến phần định nghĩa PHP-FPM container.
  • Refer file: docker-compose.yml

  • Ta có tìm đến line định nghĩa dockerfile PHP version: dockerfile: "Dockerfile-${PHP_VERSION}".
  • Bạn có thể đưa file dockerfile vào đây hay không. Câu trả lời là không. Vậy ta phải làm thế nào ?

Bước 3.

  • Ta mở file môi trường .env.
  • Tìm với keyword: PHP_VERSION. Ta có thể cấu hình PHP version ở đây.
  • Ta có thể dùng PHP 5.6, 7.0 hoặc 7.1
  • Nếu bạn chọn 5.6 thì PHP-FPM sẽ run với dockerfile 5.6.

3.2 Cài đặt MySQL.

  • Trong phần trên mình đã hướng dẫn cài PHP-FPM với các thao tác hết sức đơn giản đúng không nào.

  • Để cấu hình được MySQL thì ta cũng làm các thao tác tương tự. Bước 1:

  • Trong folder laradock, vào folder mysql.

  • Tại đây, ta có thể thấy file dockerfile cấu hình cho MySQL.

Bước 2:

  • Quay lại file docker-compose.yml. Tìm đến với phần định nghĩa mysql container.

  • Tại phần định nghĩa container này. Ta có thể thấy các thông tin liên quan đến database như: MYSQL_PORT, MYSQL_DATABASE, MYSQL_PASSWORD,...
  • Ta có thể cấu hình bằng cách, vào file .env (của laradock). Tìm đến phần define mysql. và thay đổi các thông tin liên quan đến database.