- vừa được xem lúc

[Phần 1] Hướng dẫn cài đặt Odoo trên môi trường Docker, config cơ bản và host bằng Render

0 0 6

Người đăng: Phạm Quốc Cường

Theo Viblo Asia

Phần 1: Cài đặt Odoo trên môi trường Docker (localhost)

Giới thiệu tổng quan

Odoo là một phần mềm nguồn mở được sử dụng rộng rãi cho quản lý doanh nghiệp (ERP - Enterprise Resource Planning). Nó cung cấp nhiều module chuyên biệt cho các nhu cầu kinh doanh khác nhau như kế toán, quản lý nhân sự, quản lý kho hàng, quản lý dự án, quản lý quan hệ khách hàng (CRM), và nhiều tính năng khác. Odoo là một giải pháp toàn diện cho doanh nghiệp vừa và nhỏ.

Docker là một nền tảng mã nguồn mở cho phép đóng gói và triển khai ứng dụng dễ dàng hơn trong các container. Container là một đơn vị phần mềm độc lập, bao gồm tất cả các thành phần cần thiết để chạy một ứng dụng, bao gồm mã, thư viện, và các phần tử hệ thống khác. Container được triển khai và chạy trên nhiều hệ điều hành và nền tảng khác nhau.

Sử dụng Docker cho phép bạn dễ dàng triển khai và quản lý ứng dụng Odoo cũng như các thành phần phụ trợ như cơ sở dữ liệu PostgreSQL. Bằng cách sử dụng Docker, bạn có thể đảm bảo rằng môi trường ứng dụng của bạn luôn nhất quán trên bất kỳ hệ thống nào, giúp giảm thiểu các vấn đề khác biệt giữa các môi trường phát triển, kiểm thử và sản xuất.

Khi sử dụng Docker để triển khai Odoo, bạn có thể tách các thành phần như ứng dụng web Odoo và cơ sở dữ liệu PostgreSQL thành các container riêng biệt. Điều này giúp quản lý và mở rộng quy mô dễ dàng hơn, cũng như tăng tính linh hoạt khi triển khai trên các môi trường khác nhau.

Yêu cầu trước khi cài đặt

Để có thể host Odoo trên Docker, bạn cần đáp ứng các yêu cầu cần thiết sau:

Docker: Docker phải được cài đặt trên máy chủ hoặc máy tính của bạn. Bạn có thể tải Docker và làm theo hướng dẫn cài đặt cho hệ điều hành của bạn.

Cài đặt Odoo trên Docker

Khởi chạy máy chủ PostgreSQL

Lưu ý: Trong trường hợp bạn đã khởi tạo một cơ sở dữ liệu PostgreSQL từ trước thì không cần bước này cũng được nhé.

Khởi chạy bằng docker bằng lệnh:

docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:15

Trong đó,

  • POSTGRES_USER là user để kết nối với database
  • POSTGRES_PASSWORD là mật khẩu để kết nối database
  • POSTGRES_DB là tên database
  • db là tên container, sẽ được dùng để connect nhé

Ở đây mình sử dụng Postgres phiên bản 15 nên sẽ docker image postgres:15, các bạn có thể sử dụng phiên bản khác

Khởi chạy một instance Odoo

docker run -p 8069:8069 --name odoo --link db:db -t odoo

Tên alias của container chạy Postgres phải là db để Odoo có thể kết nối với máy chủ Postgres.

Dừng và khởi chạy lại một instance Odoo

docker stop odoo
docker start -a odoo

Sử dụng volumes để lưu trữ dữ liệu

Khi container Odoo được tạo như hướng dẫn ở trên, filestore (các file assets, attachments cần thiết của Odoo) sẽ được tạo bên trong container. Nếu container bị xóa, filestore sẽ bị mất.

Cách để ngăn chặn điều đó là sử dụng Docker named volume. (hoặc sẽ lưu trữ trên AWS S3 hoặc trực tiếp trên PostgresDB - mình sẽ hướng dẫn ở phần sau)

docker run -v odoo-data:/var/lib/odoo -d -p 8069:8069 --name odoo --link db:db -t odoo

Với lệnh trên, volume có tên odoo-data sẽ vẫn tồn tại ngay cả khi container bị xóa và có thể được sử dụng lại bằng cách gọi lệnh tương tự. Đường dẫn /var/lib/odoo được sử dụng làm điểm mount cho volume phải khớp với data_dir của Odoo trong file cấu hình hoặc dưới dạng tham số CLI.

Lưu ý: nguyên tắc tương tự cũng có thể áp dụng cho container Postgresql và có thể sử dụng named volume để lưu trữ cơ sở dữ liệu khi container bị xóa.

docker run -d -v odoo-db:/var/lib/postgresql/data -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:15

Khi một máy chủ PostgreSQL được khởi chạy lại, các instance Odoo liên kết với máy chủ đó cũng phải được khởi chạy lại vì địa chỉ máy chủ đã thay đổi và liên kết bị hỏng.

Chạy Odoo với cấu hình tùy chỉnh

Cách để config, cũng như giải thích về file config này mình sẽ hướng dẫn ở phần sau luôn nhé.

File cấu hình mặc định cho máy chủ (nằm tại /etc/odoo/odoo.conf) có thể bị ghi đè khi khởi chạy bằng cách sử dụng volumes. Giả sử bạn có một cấu hình tùy chỉnh tại /path/to/config/odoo.conf, thì

docker run -v /path/to/config:/etc/odoo -p 8069:8069 --name odoo --link db:db -t odoo

Bạn cũng có thể chỉ định trực tiếp các đối số Odoo trong lệnh. Các đối số này được khai báo sau từ khóa -- trong dòng lệnh, như sau:

docker run -p 8069:8069 --name odoo --link db:db -t odoo -- --db-filter=odoo_db_.*

Mount addon tùy chỉnh

Bạn có thể mount các addon Odoo tùy chỉnh của mình trong container Odoo, tại /mnt/extra-addons

docker run -v /path/to/addons:/mnt/extra-addons -p 8069:8069 --name odoo --link db:db -t odoo

Biến môi trường

Điều chỉnh các biến môi trường này để dễ dàng kết nối với máy chủ postgres:

  • HOST: Địa chỉ của máy chủ postgres. Nếu bạn đã sử dụng một container postgres, hãy đặt thành tên của container đó. Mặc định là db.
  • PORT: Cổng mà máy chủ postgres đang lắng nghe. Mặc định là 5432.
  • USER: Vai trò postgres mà Odoo sẽ kết nối. Nếu bạn đã sử dụng một container postgres, hãy đặt cùng giá trị với POSTGRES_USER. Mặc định là odoo.
  • PASSWORD: Mật khẩu của vai trò postgres mà Odoo sẽ kết nối. Nếu bạn đã sử dụng một container postgres, hãy đặt cùng giá trị với POSTGRES_PASSWORD. Mặc định là odoo.

Ví dụ Docker Compose File docker-compose.yml đơn giản nhất sẽ là:

version: '3.1'
services:
web:
image: odoo:17.0
depends_on:
- db
ports:
- "8069:8069"
db:
image: postgres:15
environment:
- POSTGRES_DB=postgres
- POSTGRES_PASSWORD=odoo
- POSTGRES_USER=odoo

Bình luận

Bài viết tương tự

- vừa được xem lúc

Xcode Build Configuration Files

Các phương pháp hay nhất về phát triển phần mềm quy định việc tách biệt cấu hình khỏi mã một cách chặt chẽ. Tuy nhiên, các nhà phát triển trên nền tảng của Apple thường phải vật lộn để giải quyết các nguyên tắc này với quy trình làm việc nhiều dự án của Xcode.

0 0 30

- vừa được xem lúc

Tiêu hoá file cấu hình MongoDB

. Lời giới thiệu:. Cùng mình tìm hiểu cách cấu hình mongodb trên môi trường production ( centos, ubuntu, linux.

0 0 32

- vừa được xem lúc

Cách sử dụng nhiều version php với xampp ( How to use multiple PHP versions at the same time with a single xampp installation? )

Nếu bạn là một lập trình viên php thì chắc hẳn không còn xa lạ với XAMPP, WAMPP ... rồi nhỉ. Thế nhưng các bạn đã rơi vào trường hợp phải cấu hình nhiều version php cho mỗi dự án tương ứng chưa nhỉ.

0 0 24

- vừa được xem lúc

Kết nối Spring Boot với MongoDB

Note: Bài viết mang tích chất lưu lại kiến thức để sử dụng sau, do mày mò khắp google nhặt mỗi nơi một tí mới giải quyết được, nếu bạn nào gặp vấn đề tương tự thì có thể tham khảo. Những thứ cần chuẩn

0 0 26

- vừa được xem lúc

Lưu local environment của máy vào git. Lưu file từ nhiều nơi khác nhau vào một thư mục git.

Bạn quá mệt mỏi vì phải cài đặt lại mọi thứ từ đầu khi đổi máy cũ sang máy mới (cài lại terminal pluggins, cài lại các phần mềm cần thiết,...). Hôm ấy là một ngày tháng 7 nắng nhẹ, một lập trình viên

0 0 16

- vừa được xem lúc

[Phần 2] Hướng dẫn config cơ bản trên Odoo

Trong [Phần 1] Hướng dẫn cài đặt Odoo trên môi trường Docker, mình đã hướng dẫn cách cài đặt Odoo và chạy trên môi trường Docker, vậy khi muốn config sâu hơn làm như thế nào. Giới thiệu tổng quan.

0 0 6