Docker-php-fpm mongodb

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=true
0

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=true
1

To try connect with MongoDB Executive run bằng các bước sau

WORKSPACE_INSTALL_MONGO=true
2

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

Hướng dẫn docker-compose mysql

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 PHP

Cá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/mongodb

MongoDB 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 PHP

PHP-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=true
31 sao lại còn sinh ra
WORKSPACE_INSTALL_MONGO=true
32 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
    5
  • Chạy vùng chứa và xây dựng hình ảnh

    WORKSPACE_INSTALL_MONGO=true
    3
  • Khởi chạy các dịch vụ bên trong nền

    WORKSPACE_INSTALL_MONGO=true
    7
  • Cứu giúp

    WORKSPACE_INSTALL_MONGO=true
    8
  • Stop and remove the container, network, image and volume

    WORKSPACE_INSTALL_MONGO=true
    9

    Ví dụ.

    WORKSPACE_INSTALL_MONGO=true
    33

    Một số tùy chọn hữu ích

    • WORKSPACE_INSTALL_MONGO=true
      34. Xóa ảnh
    • WORKSPACE_INSTALL_MONGO=true
      35. Xóa các tập đã được đặt tên được khai báo trong phần
      WORKSPACE_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ác
      WORKSPACE_INSTALL_MONGO=true
      37
    • WORKSPACE_INSTALL_MONGO=true
      38. Xóa các
      WORKSPACE_INSTALL_MONGO=true
      37 cho các dịch vụ không được xác định trong tệp
      WORKSPACE_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/
    
    
    8
  • Xó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/
    
    
    9
  • Liệt kê tất cả các hình ảnh

    ### MONGODB ###############################################
    
    MONGODB_PORT=27017
    0
  • Xóa hình ảnh

    ### MONGODB ###############################################
    
    MONGODB_PORT=27017
    1

Ghi chú.

WORKSPACE_INSTALL_MONGO=true
71. used to Buộc xóa, ngay cả khi
WORKSPACE_INSTALL_MONGO=true
37 đ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=true
73 để chỉ định cách tạo
WORKSPACE_INSTALL_MONGO=true
74 và
WORKSPACE_INSTALL_MONGO=true
37 cho chương trình của bạn

Ví dụ

### MONGODB ###############################################

MONGODB_PORT=27017
7

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=true
76 trong thư mục gốc của dự án

Ví dụ

WORKSPACE_INSTALL_MONGO=true
30

Lưu tệp

WORKSPACE_INSTALL_MONGO=true
76. Sau đó chạy lệnh tại đường dẫn chứa tệp
WORKSPACE_INSTALL_MONGO=true
78.
WORKSPACE_INSTALL_MONGO=true
79

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
Ý nghĩaphiên bảnPhiên bản của tệp
WORKSPACE_INSTALL_MONGO=true
81serviceschứa các
WORKSPACE_INSTALL_MONGO=true
37. Với mỗi dịch vụ là tên của một
WORKSPACE_INSTALL_MONGO=true
37volumeGắn đường dẫn trên
WORKSPACE_INSTALL_MONGO=true
84 được sử dụng trên
WORKSPACE_INSTALL_MONGO=true
37mạng Sử dụng để cấu hình
WORKSPACE_INSTALL_MONGO=true
86 cho ứng dụng
  • With
    WORKSPACE_INSTALL_MONGO=true
    87 has an number of after
Ý nghĩa của imageChỉ ra
WORKSPACE_INSTALL_MONGO=true
74 sẽ được sử dụng để xây dựng
WORKSPACE_INSTALL_MONGO=true
37. Tên
WORKSPACE_INSTALL_MONGO=true
74 chỉ được xác định khi xây dựng một
WORKSPACE_INSTALL_MONGO=true
74 trên
WORKSPACE_INSTALL_MONGO=true
92 hoặc tải xuống từ cổng
WORKSPACE_INSTALL_MONGO=true
93Kết nối cổng của
WORKSPACE_INSTALL_MONGO=true
92 đến cổng của
WORKSPACE_INSTALL_MONGO=true
37volumesGắn đường dẫn trên
WORKSPACE_INSTALL_MONGO=true
84 được sử dụng trên môi trường
WORKSPACE_INSTALL_MONGO=true
37Định nghĩa các biến môi trường được truyền vào Dockerdepends_on Các
WORKSPACE_INSTALL_MONGO=true
98 được chọn là
WORKSPACE_INSTALL_MONGO=true
99 cho
WORKSPACE_INSTALL_MONGO=true
37 được . buildChỉ định vị trí đường dẫn
WORKSPACE_INSTALL_MONGO=true
73

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=true
81. 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=true
73 và
WORKSPACE_INSTALL_MONGO=true
76. Đâ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

Chủ Đề