Chạy Laravel + Docker + Vite HMR để nhiều máy cùng LAN truy cập
Đây là quy trình hoàn chỉnh để chạy Laravel + Docker + Vite HMR cho nhiều máy trong LAN.
Bạn hoàn toàn có thể cấu hình dự án để chạy nội bộ mà không cần thuê VPS.
Kiểm tra IP máy chạy Docker
hostname -I
VD kết quả ra: 192.168.1.13 172.22.0.1 172.17.0.1
Thì chọn IP LAN: 192.168.1.13; không dùng các IP docker 172 kia
Kiểm tra Docker mở port ra ngoài
docker ps --format "table {{.Names}}\t{{.Ports}}"
- Phải thấy kết quả:
quanlykho_nginx 0.0.0.0:8555->80/tcp
quanlykho_app 0.0.0.0:5262->5173/tcp
- Tức là:
Laravel chạy cổng: 8555
Vite HMR: 5262
Kiểm tra project được mount vào container chưa?
docker inspect quanlykho_app | grep Mounts -A 20
- phải thấy:
Source: /data/projects/quanlykho
Destination: /var/www
- tức là:
Sửa file trên máy thật
↓
Container thấy ngay
↓
Không cần copy file
Không cần build image
Cấu hình APP_URL trong .env
APP_URL=http://192.168.1.13:8555 thay bằng ip máy của bạn)
Cấu hình vite.config.js
export default defineConfig({
plugins: [
laravel({
input: [
'resources/css/app.css',
'resources/js/app.js'
],
refresh: true,
}),
],
server: {
host: '0.0.0.0',
port: 5173,
hmr: {
host: '192.168.1.13',
clientPort: 5262,
protocol: 'ws',
},
},
});
Chạy vite (nhớ chạy docker compose up -d trước)
docker exec -it quanlykho_app npm run dev -- --host 0.0.0.0
Mở máy khác trong cùng LAN, truy cập: 192.168.1.13:8555
truy cập: 192.168.1.13:8555
Kết quả:
- Sửa code trên máy Ubuntu
- Máy Ubuntu tự reload
- Máy khác trong LAN tự reload
- Điện thoại cùng Wi-Fi cũng có thể tự reload
- Không cần deploy VPS để test giao diện nữa.
https://tritue.edu.vn/tuecode/tracnghiem30/site/data/YVdRc01qVXlMRjl5YjNWMFpTeGlZV2wyYVdWMEwzQnZjM1F2ZG1sbGR3PT0%3D