Xin chào, mình quay lại với hướng dẫn xây dựng môi trường để phát triển Laravel với Nginx và MongoDB bằng Laradock. Các bạn có thể tham khảo bài viết về xây dựng môi trường phát triển Laravel với Apache2 và MySql tại đây. Ngoài ra, các bạn cần cài đặt Docker và Docker-compose để có thể sử dụng Laradock. Đây là hướng dẫn cài đặt Docker và Docker-compose nhé
Mình sẽ tiếp tục sử dụng project laravel example ở phần hướng dẫn xây dựng môi trường với Apache2 và MySql. Mình sẽ làm tiếp phần “Các biến môi trường cơ bản của Laradock”.
Xây dựng môi trường sử dụng Nginx và MongoDB
Đối với ví dụ này mình sẽ sử dụng Nginx và MongoDB
Đầu tiên là 2 biến môi trường sau
PHP_FPM_INSTALL_MONGO=true
WORKSPACE_INSTALL_MONGO=true
### NGINX ################################################# NGINX_HOST_HTTP_PORT=80 NGINX_HOST_HTTPS_PORT=443 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/
### MONGODB ############################################### MONGODB_PORT=27017
Đây là các biến môi trường của Nginx và MongoDB mặc định của Laradock. Mình sẽ không thay đổi gì ở đây cả
Các bạn đã chạy lệnh
docker-compose build nginx mongo
Build xong thì build nó lên thôi
docker-compose up -d nginx mongo
Việc kế tiếp là để Docker làm việc của nó, còn mình thì ngồi đợi nhé
chúc mừng. Đến đây là đã hoàn thành bước xây dựng Nginx và MongoDB. Các bạn kiểm tra lại bằng lệnh
docker-compose ps
Do Laradock không hỗ trợ driver MongoDB nên cần cài thêm driver cho MongoDB. Driver mình sử dụng là jensegers/laravel-mongodb. Sau đây là cách mình cài đặt
docker-composer exec workspace bash
composer require jenssegers/mongodb
Và thêm nhà cung cấp dịch vụ trong tệp config/app. php
Jenssegers\Mongodb\MongodbServiceProvider::class,
Thêm config ‘mongodb’ vào file config/database. php
WORKSPACE_INSTALL_MONGO=true0
Thực hiện kết nối dự án laravel_example với tệp MongoDB vừa được xây dựng. env
WORKSPACE_INSTALL_MONGO=true1
To try connect with MongoDB Executive run bằng các bước sau
WORKSPACE_INSTALL_MONGO=true2
Sau đó thì bắt đầu vào công cuộc code Laravel thôi nào
Vì mình xin đã kết thúc bài hướng dẫn cài đặt môi trường phát triển Laravel với Nginx và MongoDB bằng Laradock. Xin chào
Laravel-Sail có hỗ trợ Mongodb không?Như các bạn đã biết Laravel-Sail không hỗ trợ Hỗ trợ Mongodb, hôm nay mình sẽ hướng dẫn các bạn cách làm thêm Service Mongodb
Chào mọi người. Hôm nay sẽ tiếp tục hàng loạt bài Mình biết thì mình chia sẻ của mình mong tiếp tục nhận được sự ủng hộ từ anh em vui vẻ xin lỗi vì sau bài
Hướng dẫn sử dụng pool worker trong PHPCác nhà phát triển PHP sắp sử dụng đa luồng. Sự đơn giản của chương trình đồng bộ, đơn luồng chắc chắn rất hấp dẫn, nhưng đôi khi sử dụng tối đa
Hướng dẫn jensegers/mongodbMongoDB là hệ thống quản trị CSDL NoSQL phổ biến nhất trên thế giới. Tuy nhiên, mặc định Laravel PHP Framework lại không hỗ trợ MongoDB. Vì vậy trong hướng dẫn này,
Hướng dẫn sử dụng php-fpm trong PHPPHP-FPM cho phép tăng tốc PHP lên gấp nhiều lần, đặc biệt phù hợp với các web server lưu lượng truy cập lớn. Bài viết này sẽ đi sâu vào giải thích về
- Trước
- 1
- 2
- 3
- 4
- 5
- 6
- Sau
In sao lại sử dụng Docker-compose???
Như đã biết, chúng ta đã định cấu hình và tạo hình ảnh, chúng ta đã tạo các vùng chứa và liên kết chúng với nhau. Nếu bạn làm việc với 2 hoặc 3 container thì nó có thể thực hiện được
Tuy nhiên, nếu bạn cần thiết lập môi trường của 1 dự án với nhiều container chứa hơn, thì công việc đó sẽ trở nên rất tẻ nhạt để đi qua tất cả các bước thủ công mỗi lần
Vì sao có thể giải được bài toán này được nhỉ?
Thật may mắn
Ông trời đã sinh ra
WORKSPACE_INSTALL_MONGO=true31 sao lại còn sinh ra
WORKSPACE_INSTALL_MONGO=true32 thiên tài hơn này nữa cơ chứ
Trong bài viết này các bạn cùng tìm hiểu cách sử dụng nó như thế nào nhé
Docker-compose là gì?
- Docker-compose là 1 công cụ để định nghĩa và chạy nhiều vùng chứa trên ứng dụng Docker
- Cho phép bạn tạo 1 tệp cấu hình YML, nơi bạn sẽ định nghĩa các dịch vụ trên ứng dụng của mình và định nghĩa tất cả các bước, cấu hình cần thiết để xây dựng các image, up các container và liên kết chúng với nhau. Cuối cùng, 1 khi tất cả điều này được thực hiện hì bạn sẽ chỉ cần thiết lập tất cả với 1 câu lệnh duy nhất
- ưu điểm. giúp tự động tải ảnh, thiết lập cấu hình tốt hơn rất nhiều so với Docker
Các câu lệnh thường được sử dụng
Xây dựng các hình ảnh [nếu cần tạo]
WORKSPACE_INSTALL_MONGO=true
5Chạy vùng chứa và xây dựng hình ảnh
WORKSPACE_INSTALL_MONGO=true
3Khởi chạy các dịch vụ bên trong nền
WORKSPACE_INSTALL_MONGO=true
7Cứu giúp
WORKSPACE_INSTALL_MONGO=true
8Stop and remove the container, network, image and volume
WORKSPACE_INSTALL_MONGO=true
9Ví dụ.
WORKSPACE_INSTALL_MONGO=true
33Một số tùy chọn hữu ích
WORKSPACE_INSTALL_MONGO=true
34. Xóa ảnhWORKSPACE_INSTALL_MONGO=true
35. Xóa các tập đã được đặt tên được khai báo trong phầnWORKSPACE_INSTALL_MONGO=true
36 của tệp soạn thảo và các tập đã ẩn danh được đính kèm vào cácWORKSPACE_INSTALL_MONGO=true
37WORKSPACE_INSTALL_MONGO=true
38. Xóa cácWORKSPACE_INSTALL_MONGO=true
37 cho các dịch vụ không được xác định trong tệpWORKSPACE_INSTALL_MONGO=true
70
Listing all the container
### NGINX ################################################# NGINX_HOST_HTTP_PORT=80 NGINX_HOST_HTTPS_PORT=443 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/
8Xóa vùng chứa
### NGINX ################################################# NGINX_HOST_HTTP_PORT=80 NGINX_HOST_HTTPS_PORT=443 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/
9Liệt kê tất cả các hình ảnh
### MONGODB ############################################### MONGODB_PORT=27017
0Xóa hình ảnh
### MONGODB ############################################### MONGODB_PORT=27017
1
Ghi chú.
WORKSPACE_INSTALL_MONGO=true71. used to Buộc xóa, ngay cả khiWORKSPACE_INSTALL_MONGO=true37 đang chạy hoặc hình ảnh đang được sử dụng
Các bước tiến hành
1. Tạo 1 Dockerfile
Giống như khi chạy 1 docker, bạn cần tạo 1
WORKSPACE_INSTALL_MONGO=true73 để chỉ định cách tạo
WORKSPACE_INSTALL_MONGO=true74 và
WORKSPACE_INSTALL_MONGO=true37 cho chương trình của bạn
Ví dụ
### MONGODB ############################################### MONGODB_PORT=270177
2. Tạo 1 docker-compose. yml
Để xác định ứng dụng được xác định bao gồm nhiều vùng chứa của bạn, bạn sử dụng tệp
WORKSPACE_INSTALL_MONGO=true76 trong thư mục gốc của dự án
Ví dụ
WORKSPACE_INSTALL_MONGO=true30
Lưu tệp
WORKSPACE_INSTALL_MONGO=true76. Sau đó chạy lệnh tại đường dẫn chứa tệp
WORKSPACE_INSTALL_MONGO=true78.
WORKSPACE_INSTALL_MONGO=true79
Giải thích cú pháp của tập tin docker-compose. yml
- File
WORKSPACE_INSTALL_MONGO=true
76 được tổ chức bao gồm 4 phần
WORKSPACE_INSTALL_MONGO=true81serviceschứa các
WORKSPACE_INSTALL_MONGO=true37. Với mỗi dịch vụ là tên của một
WORKSPACE_INSTALL_MONGO=true37volumeGắn đường dẫn trên
WORKSPACE_INSTALL_MONGO=true84 được sử dụng trên
WORKSPACE_INSTALL_MONGO=true37mạng Sử dụng để cấu hình
WORKSPACE_INSTALL_MONGO=true86 cho ứng dụng
- With
WORKSPACE_INSTALL_MONGO=true
87 has an number of after
WORKSPACE_INSTALL_MONGO=true74 sẽ được sử dụng để xây dựng
WORKSPACE_INSTALL_MONGO=true37. Tên
WORKSPACE_INSTALL_MONGO=true74 chỉ được xác định khi xây dựng một
WORKSPACE_INSTALL_MONGO=true74 trên
WORKSPACE_INSTALL_MONGO=true92 hoặc tải xuống từ cổng
WORKSPACE_INSTALL_MONGO=true93Kết nối cổng của
WORKSPACE_INSTALL_MONGO=true92 đến cổng của
WORKSPACE_INSTALL_MONGO=true37volumesGắn đường dẫn trên
WORKSPACE_INSTALL_MONGO=true84 được sử dụng trên môi trường
WORKSPACE_INSTALL_MONGO=true37Định nghĩa các biến môi trường được truyền vào Dockerdepends_on Các
WORKSPACE_INSTALL_MONGO=true98 được chọn là
WORKSPACE_INSTALL_MONGO=true99 cho
WORKSPACE_INSTALL_MONGO=true37 được . buildChỉ định vị trí đường dẫn
WORKSPACE_INSTALL_MONGO=true73
Tổng kết
Vừa rồi mình đã hướng dẫn các bạn làm sao để sử dụng được
WORKSPACE_INSTALL_MONGO=true81. Qua bài này của mình, mong rằng các bạn có cái nhìn rõ nét hơn vì sao lại có sự kết hợp giữa
WORKSPACE_INSTALL_MONGO=true73 và
WORKSPACE_INSTALL_MONGO=true76. Đây có thể là 1 khung sáng tạo mà mình cảm thấy khá đơn giản và dễ hiểu khi mình bắt đầu tiếp cận với Docker và Docker Compose. Tuy nhiên, mình thấy rằng học Docker khá là rộng nên là 1 bài viết này có thể sẽ không thể giúp các bạn hiểu hết về Docker nhưng nếu giúp các bạn hiểu phần nào về Docker thì đó lại là 1