Tìm hiểu về Docker, Laradock, cách deploy laravel sử dụng laradock trên ubuntu

1. Docker container là gì

Docker là một chương trình máy tính thực hiện ảo hóa cấp hệ điều hành còn được gọi là container hóa. Docker, Inc đã phát triển nó. Docker là một nền tảng mở cho các nhà phát triển và hệ thống để xây dựng, vận chuyển và chạy các ứng dụng phân tán, cho dù trên máy tính xách tay, máy ảo trung tâm dữ liệu hoặc đám mây.

Container image là gói phần mềm nhẹ, độc lập, có thể thực hiện được của một phần mềm bao gồm mọi thứ bạn cần để chạy nó: code, runtime, system tools, system libraries, settings.

Docker là công cụ được thiết kế để giúp tạo, triển khai và chạy các ứng dụng dễ dàng hơn bằng cách sử dụng các containers.

Các containers cho phép nhà phát triển đóng gói một ứng dụng với tất cả các phần cần thiết, chẳng hạn như thư viện và các phụ thuộc khác, và gửi tất cả ra dưới dạng một gói.

Docker là một dự án nguồn mở để tự động hóa việc triển khai các ứng dụng dưới dạng các containers di động, tự cung cấp, có thể chạy trên đám mây hoặc tại chỗ.

2. Laradock

Laradoc là một môi trường phát triển PHP đầy đủ cho Docker.

Nó bao gồm Docker Images được đóng gói sẵn, tất cả được cấu hình sẵn để cung cấp một môi trường phát triển PHP tuyệt vời. chi tiết về laradock bạn có thể xem tại đây

3. Cài đặt laravel trên docker container

Đầu tiên, chúng ta sẽ cài đặt docker trên ubuntu, sau đó clone repository của laradock và bắt đầu cấu hình nó. bạn chạy các lệnh sau để cài docker

1. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
2. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
3. sudo apt-get update
4. apt-cache policy docker-ce
5. sudo apt-get install -y docker-ce

Để xem bạn đã cài đặt thành công hay chưa sử dụng command sau:

docker -v // xem version của docker

Ngoài ra bạn cần cài đặt thêm một số containers khác: NGINX, PHP, Composer, MySQL, Redis and Beanstalkd

3.1 Cài đặt laravel 5.6 trong thư mục của bạn

Bạn có thể cài đặt Laravel trong thư mục dự án thông thường của mình bằng lệnh sau.

composer create-project laravel/laravel test_laravel --prefer-dist

truy cập vào thư mục bằng lệnh sau

cd test_laravel

Tiếp theo thay đổi databse trong file .env như sau

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=doc
DB_USERNAME=root
DB_PASSWORD=root

3.2 Clone laradock repository

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

sau khi chạy xong sẽ tạo ra thư mục laradock với cấu trúc nhau:

3.3 Thay đổi file môi trường

truy cập vào thư mục laradock, thay đổi tên file env-example thành .env

cp env-example .env

3.4 Chạy các containers

docker-compose up -d nginx mysql phpmyadmin redis workspace

Nếu đây là lần đầu tiên của bạn, thì sẽ mất 15-20 phút để cài đặt tất cả các containers từng cái một và tạo môi trường cho docker container. Nó sẽ khởi động máy chủ nginx, máy chủ mysql, phpmyadmin.

Bạn có thể liệt kê các container đang chạy của mình bằng lệnh sau.

docker ps

restart containers sử dụng câu lệnh sau

docker restart $(docker ps -q)

kill hết tất cả các containers

docker kill $(docker ps -a -q)

stop hết các containers

docker stop $(docker ps -aq)

gõ trên browser http://localhost nếu kết quả như sau thì bạn cài đặt thành công

3.5 Truy cập vào csdl thông qua phpMyAdmin

bạn có thể truy cập đến phpMyAdmin tại cổng 8080 trên browser http://localhost:8080 login vào trang phpmyadmin với server='mysql', username='root' và password='root'. tạo database, với cái tên là "doc" được viết trong file .env.

docker-compose exec workspace bash

chạy các câu lệnh artisan của laravel như bình thường

php artisan migrate // migrate database
php artisan make:controller testController // tạo file testController.php
php artisan make:model testModel // tạo file testModel.php
....

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

https://appdividend.com/2018/04/12/how-to-setup-laravel-in-docker-container/?fbclid=IwAR3jAB6DEkLVLb6RQr54YtIQ58mL6qa5CyIRGvIj4-kCY4i8H33xGZN1UiU