Quản lý cấu trúc dự án khi sử dụng Docker Compose

Quản lý cấu trúc dự án khi sử dụng Docker ComposeCuongquach.comKhi mà hệ thống Docker Container trong tổ chức hệ thống vận hành của bạn bước sang những giai đoạn cần đáp ứng các dự án ứng dụng/dịch vụ lớn phức tạp với nhiều thành phần dịch vụ khác nhau. Thì DockerDocker Compose thường là một sự lựa chọn cơ bản khá phù hợp để có thể khai báo quản lý khởi chạy một stack dịch vụ gồm nhiều container dịch vụ cùng lúc. Vậy làm sao để có thể quản lý cấu trúc hoá cấp thư mục trong một dự án lớn nhiều dịch vụ như thế nào cho hiệu quả ?
Lưu ýBài viết dành cho các bạn đã nắm được cách sử dụng cơ bản Docker Compose và vai trò của Docker Compose.

quan-ly-thu-muc-du-an-khi-su-dung-docker-composeCó thể bạn cũng quan tâm chủ đề khác
Tìm hiểu về Dockerfile để build Docker Image
Container Registry là gì ?
Cài đặt Docker Registry trên CentOS 7

1. Docker Compose với dự án một ứng dụng

Như bạn đã biết khi tập tành cơ bản về Docker Compose thì việc quản lý một dự án nhỏ thường khá đơn giản. Giả sử bạn chỉ có 1 ứng dụng duy nhất, chỉ có 1 Dockerfile để build image và 1 file ‘docker-compose.yml‘ để chạy Docker Compose. Lúc đấy thư mục ứng dụng cho Docker Compose của bạn sẽ đơn giản như sau :

myapp/
├── appcode/
├── docker-compose.yml
└── Dockerfile

File ‘docker-compose.yml‘ sẽ có nội dung cơ bản như sau .

version: '3'

services:
  myapp:
    build: '.'

Với nội dung trên thì khi chạy lệnh Docker Compose sẽ build image từ các chỉ thị trong Dockerfile và hoàn tất yêu cầu của chúng ta.

2. Docker Compose với dự án nhiều ừng dụng

Như chúng ta đã biết thì mục tiêu lớn của Docker Compose đó là hỗ trợ người dùng có thể khởi tạo, cấu hình chi tiết và khởi động nhiều Docker Container cùng 1 lúc theo nhu cầu quản lý thay vì phải gõ nhiều lệnh Docker để quản lý tăng tỉ lệ sai sót mất thời gian.

Nếu bây giờ một stack dự án gồm nhiều micro-services khác nhau ví dụ như : web server, mysql, php-fpm,… thì làm cách nào bạn tổ chức quản lý thư mục sao cho có thể sử dụng Docker Compose có thể hoạt động hiệu quả. Vậy thì rất đơn giản hãy phân cấp thư mục như dưới đây :

myapp/
├── docker-compose.yml
├── env-development.yml
├── env-production.yml
├── mysql
│   ├── Dockerfile
│   └── my.cnf
├── nginx
│   ├── config
│   │   └── nginx.conf
│   ├── Dockerfile
│   └── ssl
└── php
├── Dockerfile
└── php.ini

Như này thì mỗi dịch vụ sẽ có một Dockerfile riêng vì chúng là các dịch vụ tách rời để có thể tiến hành build image container nhưng lại thuộc về cùng 1 dự án web server stack.

Lúc này file ‘docker-compose.yml‘ sẽ có nội dung cơ bản để nhận diện thư mục hoạt động cho việc build trông như thế này.

version: '3'

services:
  nginx:
    build: './nginx'

  php:
    build: './php'

  mysql:
    build: './mysql'

Với việc quản lý cấp thư mục như này vô cùng tiện lợi cho chúng ta khi khai báo ‘docker-compose.yml‘ và khởi chạy build Dockerfile cho các dịch vụ đơn lẻ nhưng chung dự án.

Nguồn: https://cuongquach.com/

Previous articleEbook Head First Java 2nd Edition (PDF)
Next articleFull Bộ Video Bài Giảng CCNA VnPro – Download Free
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !