Laradock

php Feb 03, 2021
  1. Laradock là gì?
  • Laradock là một môi trường phát triển dành cho PHP dựa trên Docker. Với phương châm "Use Docker first and learn about it later.", nó bao gồm các Docker Images được cấu hình sẵn giúp cho việc tích hợp Docker vào các dự án PHP một cách nhanh chóng và thuận tiện hơn.
  • Laradock hiểu đơn giản là Docker và Laravel - một package được cấu hình đầy đủ không chỉ cho Laravel mà còn cho các framework hoặc CMS khác được viết bằng PHP phổ biến hiện nay.

2. Điểm nổi bật của Laradock

  • Cung cấp đầy đủ môi trường phát triển cho PHP.
  • Hỗ trợ nhiều phiên bản PHP và có khả năng chuyển đổi giữa các phiên bản PHP một cách dễ dàng.
  • Hỗ trợ hầu hết các framework hoặc CMS khác được viết trên PHP.
  • Hỗ trợ nhiều Database Engine như Mysql, Postgres, MariaDB,...
  • Có nhiều toy để cache như Redis, Memcached,...
  • PHP handler: PHP FPM – HHVM
  • Có nhiều tools như Composer, Node, Phpmyadmin,...
  • Khả năng di động (portable): môi trường develop được dựng lên bằng docker có thể chuyển từ người này sang người khác mà không làm thay đổi cấu hình ở trong. Trong kỹ thuật, được gọi là provisioning.
  • Với sự hỗ trợ của docker, việc coding, testing, deploying trở nên đơn giản hơn.
  • Sharing: với Docker Hub (public registry), các developer có thể tìm và sử dụng các môi trường được dựng sẵn.

3 .Cài đăt laradock

Yêu cầu:

  • Git
  • Docker
  • Docker-compose

Cài đặt:

git clone https://github.com/laradock/laradock.git

Khi tải về mình review qua nó 1 tý, trong thư mục laradock có rất nhiều thứ mà nó đã làm sẵn như:

  • Proxy server: nginx, apache, caddy ...
  • DB: Mysql, mariadb, mongo, postgre ...
  • Workspace: Đã cài đặt sẵn PHP, là nơi mà các bạn có thể chạy các câu lệnh của php artisan. Để lựa chọn phiên bản php, sửa biến PHP_VERSION trong file env. Hơn nữa, bạn có thể thay đổi các lựa chọn trong file .env để cài đặt các gói vào trong workspace container, tiêu biểu như composer và npm. Việc này giúp bạn không cần phải cài đặt những gói đó lên máy tính của mình, việc cài đặt sẽ trong container và bạn cần phải exec vào trong workspace để chạy những lệnh đó. Tùy thuộc vào nhu cầu sử dụng mà các bạn có thể bật nó lên.

4. Build môi trường laravel với laradock (setup for mutiplate projects)

4.1 cấu trúc folder:

chú thích:

+ folder laradock: folder vừa cài laradock ở trên.

+ folder laraveldemo1, laraveldemo2: source laravel clone về.

Để config mọi thứ về truy cập thì bạn sẽ vào file .env này trong Laradock để thiết lập kết nối.

cp env-example .env

4.2 Config

Bước 1: cấu hình trong .env

Trong file .env trên mình quan tâm cấu hình các thông số sau:

Nginx:

- NGINX_HOST_HTTP_PORT=8899(port từ máy host ở ngoài ánh xạ vào trong docker container)

- NGINX_HOST_HTTPS_PORT=4838(port từ máy host ở ngoài ánh xạ vào trong docker container)

- NGINX_HOST_LOG_PATH=./logs/nginx/

- NGINX_SITES_PATH=./nginx/sites/

- NGINX_PHP_UPSTREAM_CONTAINER=php-fpm

- NGINX_PHP_UPSTREAM_PORT=9000

- NGINX_SSL_PATH=./nginx/ssl/

Mysql:

- MYSQL_VERSION=latest

- MYSQL_DATABASE=laravel_demo

- MYSQL_USER=root

- MYSQL_PASSWORD=root

- MYSQL_PORT=3369

- MYSQL_ROOT_PASSWORD=root

- MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d

Chú ý : PHP_VERSION(chọn version phù hợp với source laravel)

Bước 2: Tạo file cấu hình source laravel

  • Vào thư mục \laradock\nginx\sites
  • Tạo  file:

+ demo1.conf( map với source laraveldemo1):

- Dùng lệnh:  cp default.conf demo1.conf

- Sau đó sửa một số chỗ thành như sau:

listen 80;  

listen [::]:80;

server_name demo1.test;    

root /var/www/laraveldemo1/public;

+ demo2.conf(map với source laraveldemo1) : tương tự file demo1.conf

Bước 3: Ghi thêm vào file /etc/hosts

127.0.0.1 demo1.test

127.0.0.1 demo2.test

Bước 4: Build container

- Chạy lệnh: docker-compose up -d nginx mysql phpmyadmin workspace

Chú ý: Quá trình build các container có thể mất vài phút tùy vào cấu hình máy.

- Mọi thứ đã lên. Tiếp theo là cài đặt các gói cần thiết cho laravel. Dùng câu lệnh sau để vào được workspace
docker-compose exec --user=laradock workspace bash

Bước 5: Kết quả

- Sau khi setup xong thì sẽ chạy với project sau:

http://demo1.test:8899  => tương ứng sourece laraveldemo1

http://demo2.test:8899 => tương ứng source laraveldemo2

5. Tài liệu tham khảo

laradock/laradock
Full PHP development environment for Docker. Contribute to laradock/laradock development by creating an account on GitHub.
Laradock
Full PHP development environment for Docker.

Tags

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.