Giới thiệu về Odoo và Docker
Odoo là một phần mềm mã nguồn mở phổ biến, giúp doanh nghiệp quản lý nhiều hoạt động 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 và quản lý quan hệ khách hàng (CRM). Với một loạt các mô-đun được phát triển đặc biệt, Odoo là giải pháp tối ưu cho các doanh nghiệp vừa và nhỏ.
Bên cạnh đó, Docker là một nền tảng mã nguồn mở, giúp việc triển khai và quản lý ứng dụng trở nên dễ dàng hơn nhờ vào hệ thống container. Mỗi container có thể chứa tất cả các thành phần cần thiết để hoạt động của ứng dụng, bao gồm mã nguồn, thư viện, và các phần tử hệ thống khác. Việc sử dụng Docker đảm bảo rằng các môi trường phát triển, kiểm thử và sản xuất của bạn luôn giống nhau, từ đó giảm thiểu lỗi phát sinh do sự khác biệt giữa các môi trường.
Tại sao nên sử dụng Docker để triển khai Odoo?
Khi triển khai Odoo trên Docker, bạn có thể dễ dàng tách các thành phần như ứng dụng web Odoo và cơ sở dữ liệu PostgreSQL vào các container riêng biệt. Điều này không chỉ giúp dễ dàng quản lý mà còn giúp mở rộng quy mô và tăng tính linh hoạt trong quá trình triển khai.
Yêu cầu trước khi cài đặt Odoo
Trước khi bắt đầu quá trình cài đặt Odoo trên Docker, bạn cần đảm bảo rằng bạn đã cài đặt thành công Docker 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ác bước cài đặt Odoo trên Docker
1. Khởi chạy máy chủ PostgreSQL
Trước tiên, nếu bạn chưa có cơ sở dữ liệu PostgreSQL, hãy khởi chạy nó bằng lệnh sau:
docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:15
Trong đó:
POSTGRES_USER
: tên người dùng để kết nối với cơ sở dữ liệu.POSTGRES_PASSWORD
: mật khẩu để kết nối cơ sở dữ liệu.POSTGRES_DB
: tên cơ sở dữ liệu.db
: tên container mà bạn sẽ sử dụng để kết nối.
2. Khởi chạy Odoo
Tiếp theo, bạn có thể khởi chạy một instance Odoo với lệnh sau:
docker run -p 8069:8069 --name odoo --link db:db -t odoo
Tên alias của container PostgreSQL được sử dụng là db để Odoo có thể kết nối.
Nếu bạn cần dừng và khởi động lại Odoo, hãy sử dụng:
docker stop odoo
docker start -a odoo
Lưu ý: Nếu gặp lỗi ERROR odoo odoo.modules.loading: Database odoo not initialized, hãy khởi chạy lệnh sau để khởi tạo cơ sở dữ liệu:
odoo --init base --database <tên database muốn khởi tạo> --stop-after-init
3. Sử dụng volumes để lưu trữ dữ liệu
Để tránh mất dữ liệu khi container bị xóa, bạn nên sử dụng Docker named volume:
docker run -v odoo-data:/var/lib/odoo -d -p 8069:8069 --name odoo --link db:db -t odoo
Volume có tên odoo-data sẽ vẫn tồn tại ngay cả khi container Odoo bị xóa. Bạn cũng có thể sử dụng named volume tương tự cho PostgreSQL:
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
4. Cấu hình Odoo tùy chỉnh
Bạn có thể sử dụng file cấu hình tùy chỉnh bằng lệnh sau:
docker run -v /path/to/config:/etc/odoo -p 8069:8069 --name odoo --link db:db -t odoo
Hoặc bạn có thể chỉ định các đối số Odoo trực tiếp trong lệnh:
docker run -p 8069:8069 --name odoo --link db:db -t odoo -- --db-filter=odoo_db_.*
5. Mount addon tùy chỉnh
Để sử dụng các addon Odoo tùy chỉnh, bạn có thể mount chúng vào container tại thư mục /mnt/extra-addons:
docker run -v /path/to/addons:/mnt/extra-addons -p 8069:8069 --name odoo --link db:db -t odoo
6. Biến môi trường
Điều chỉnh các biến môi trường sau cho phù hợp với máy chủ PostgreSQL của bạn:
HOST
: Địa chỉ của máy chủ PostgreSQL, mặc định là db.PORT
: Cổng lắng nghe của máy chủ, mặc định là 5432.USER
: Vai trò để Odoo kết nối, mặc định là odoo.PASSWORD
: Mật khẩu của vai trò này, mặc định là odoo.
Ví dụ về Docker Compose
Để quản lý dễ dàng, bạn có thể sử dụng Docker Compose với file docker-compose.yml đơn giản:
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
Kết luận
Qua bài viết này, hy vọng bạn đã có thể cài đặt và cấu hình Odoo trên Docker một cách dễ dàng. Hãy theo dõi phần 2 để biết thêm nhiều mẹo và hướng dẫn chi tiết hơn.
source: viblo