Hi các bạn,
Về Docker dành cho PHP thì mình đang xài cái image này khá là ok. Nay muốn chia sẻ cho các bạn 😀
Các bạn nào ko biết docker là gì thì có thể tìm hiểu nha, nó đơn giản là tạo ra container để phù hợp cho software của bạn chạy, flexible, fast,…
Với Docker image này của mình, các bạn có thể chạy tốt các projects:
- PHP thuần
- Laravel
- PhalconPHP
- …
Mấy cái framework có thể chạy dc đó, ko rõ nghen vì mình ko xài 😀
1/ Docker Image information
Docker hub: https://hub.docker.com/r/sethsandaru/php73-phalcon-laravel-fpm
Inside image:
- Nginx, đầu vào là thư mục public tại root folder mà ta mapping tới
- PHP 7.3, mới, nhanh và nhiều features mới
- Build-in PhalconPHP 3.3 extension
- Enable các module cần thiết mà ta hay sử dụng (trừ gd2)
- Có XDebug đi kèm, bật/tắt thông qua ENVIRONMENT VARIABLE.
2/ Sử dụng Docker Image
Các bạn có thể sử dụng thông qua lệnh docker bình thường. Tuy nhiên mình ưu tiên docker-compose hơn nên mình sẽ chia sẻ docker-compose.yml đơn giản nhé
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- ./db_data:/var/lib/mysql
ports:
- 3307:3306
environment:
MYSQL_ROOT_PASSWORD: sethphat@123456
MYSQL_DATABASE: sethphat
MYSQL_USER: sethphat
MYSQL_PASSWORD: s3thPh@t!@#
php:
image: sethsandaru/php73-phalcon-laravel-fpm:1.0.0
container_name: sethphat-project
ports:
- 81:80
environment:
XDEBUG_ENABLE: 1
XDEBUG_PORT: 9200
volumes:
- ./:/var/www/html
links:
- db:db
Rồi, “docker-compose up -d” là chiến thôi 😀
3/ Lưu ý
3.1/ Public
Điều này quan trọng nha, với docker image này, mình đã set config cho nó mặc định vào thư mục public luôn thay vì ta fải http://<url>/public như ta hay làm nếu như chơi mặc định theo xampp hay vertrigo,…
3.2/ Chạy Artisan
Để chạy dc php artisan mà liên quan tới update db (migrate),… thì các bạn nên chạy lệnh như sau:
docker-compose exec php php artisan migrate
Vì db của ta đang trong cái container, nên ta fải run command như vậy để vào. DB của ta đang config internal mà. Tương tự như trên nhé.
4/ Lời kết
Với docker image này, mong rằng nó có thể hỗ trợ các bạn trong development stage thậm chí là test/live stage nhé 😀
Cám ơn các bạn đã theo dõi!