Cấu hình Laravel và Docker với Vessel
This post hasn't been updated for 3 years
Vessel là một lightweight docker environment cho Laravel, có nghĩa là nó chỉ là một tập nhỏ các tập tin thiết lập local docker development environment và không có cài đặt bổ sung cho globally.
Cài đặt Docker và Docker-compose
Docker là một dự án mã nguồn mở dựa trên Linux container, nếu bạn không quen thuộc với docker, bạn có thể tham khảo bài viết này "Tìm hiểu Docker" của bạn Trần Văn Cường .
Ở thời điểm này Vessel chỉ làm việc trên Mac và Linux bởi vì nó sử dụng một bash script để chạy Docker commands.
Dành cho Linux Ubuntu distribution cách đơn giản nhất để cài đặt docker như sau:
curl -fsSL get.docker.com | sudo sh
sudo usermod -aG docker $USER // Add user vào docker group
Để cài đặt docker compose chạy command này để download phiên bản mới nhất:
sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
Tiếp theo, thiết lập executable permissions cho file binary.
sudo chmod +x /usr/local/bin/docker-compose
Tìm hiểu thêm về cách cài đặt docker: docker , docker-compose
Bắt đầu với Vessel
Đầu tiên bạn cần tạo 1 Laravel project như sau:
composer create-project --prefer-dist laravel/laravel vessel_test
Tham khảo Laravel installation document
Như tôi đã nói Vessel là lightweight docker environment, nó bao gồm một Laravel service provider giúp cho việc cài đặt development enviroment đơn giản hơn. Tất cả bạn cần làm là thiết lập dev với Vessel:
Di chuyển working directory tới project
cd vessel_test
Cài đặt Vessel vào project
composer require shipping-docker/vessel
Publish vessel
command và Docker files
php artisan vendor:publish --provider="Vessel\VesselServiceProvider"
Chạy cái này để init project. Phải chạy với "bash" cho đến khi init xong:
bash vessel init
Lần đầu bắt start 1 ứng dụng với Vessel sử dụng init command, vessel sẽ download những official Docker images sau:
- PHP 7.1
- MySQL 5.7
- Redis
- NodeJS với NPM, Yarn, và Gulp
Start vessel:
./vessel start
Vào http://localhost
trên trình duyệt để xem ứng dụng đã được chạy!
Trong trường hợp gặp lỗi EADDRINUSE
do cổng 80 hoặc 3396 đã bị ứng dụng khác chiếm dụng. stop vessel:
./vessel stop
Thêm đoạn sau đây vào file .env trong project, sau đó start:
APP_PORT=8080
MYSQL_PORT=33060
Or when starting Vessel:
Hoặc start bằng command như sau:
APP_PORT=8080 MYSQL_PORT=33060 ./vessel start
Sau đó bạn có thể xem project tại http://localhost:8080 và truy cập vào database từ cổng 33060.
Và cuối cùng, Vessel cũng có tài liệu bao gồm mọi thứ bạn cần biết để bắt đầu: official documentation
Bonus: Vessel Cheat Sheet
Bài viết đã được dịch và chỉnh sửa cho phù hợp từ nguồn: Laravel & Docker, Zero config with Vessel
All Rights Reserved