Docker Odoo 11 trên Ubuntu 16.04

Tóm tắt: Odoo 11 có nhiều phương thức triển khai trong quá trình phát triển lẫn trên môi trường sản phẩm thực. Docker là cách đơn giản nhất vì đã được tích hợp các dòng lệnh cài đặt trong Docker Image của nó. Người dùng và người phát triển hệ thống trên Odoo có thể chỉ cần cài đặt Docker sau đó thực thi Image để triển khai sản phẩm. Bài viết này sẽ trình bài chi tiết các bước để triển khai Odoo 11 Docker.

1. Cài đặt Docker Engine trên Ubuntu

Docker cho phép triển khai ứng dụng phần mềm chạy dưới dạng thùng chứa (container). Docker được phát triển trên ngôn ngữ lập trình Go. Sau đây là các bước giúp ta cài đặt.

1.1 Thiết lập Docker trong kho ứng dụng (repository)

Đầu tiên ta cần cập nhật ứng dụng và thiết lập sự cho phép sử dụng SSL (HTTPS) trong hệ điều hành Ubuntu hiện tại.

apt-get update
apt-get install apt-transport-https ca-certificates curl software-properties-common

Thêm kho ứng dụng của Docker vào sau đó tiến hành tải Docker về máy tính.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add –
add-apt-repository "deb [arch=amd64] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Thỉnh thoảng có lỗi về SSL với loại IP4 và IP6. Nếu xãy thì ta có thể thử thực hiện câu lệnh sau với IP4.

curl -4fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
````

Bây giờ đơn giản chỉ cần cập nhật lại nguồn ứng dụng sau đó tiến hành cài đặt Docker.

```sh
apt-get update
apt-get install docker-ce

1.2 Cài đặt Docker Engine

Cần tạo một tài khoản khác nếu không muốn sử dụng tài khoản root để chạy Docker. Vì nếu dùng root để chạy nó ta sẽ gặp nguy hiểm về bảo mật nếu trong Docker có vấn đề.

Thêm tài khoản mới là user và gán nó vào nhóm docker.

adduser user
usermod -aG docker user

Khởi động lại Docker để sử dụng thiết lập mới.

systemctl restart docker

1.3 Kiểm tra kết quả

Sau khi đã cài đặt xong ta cần kiểm tra thông qua một Docker Image có tên hello-world. Nó đơn thuần chỉ hiện dòng lệnh in ra màn hình hello-world mà thôi.

docker run hello-world

Ta dể dàng thấy được 2 dòng này trong màn hình console.

Hello from Docker!
This message shows that your installation appears to be working correctly.

1.4 Cấu hình Docker khởi chạy

Khi máy tính ta khởi động lại ta muốn Docker tự khởi đồng đi cùng. Do đó ta cần cho phép (enable) nó được chạy bằng dòng lệnh.

systemctl enable docker

Ta đã hoàn thành cài Docker trên Ubuntu 16.04.

2. Cài đặt Odoo Docker

Để chạy được ứng dụng Odoo trên Docker ta cần 2 container: Postgres và Odoo. Các ứng dụng điều được lấy từ Docker Hub để cài đặt cho Docker Engine trên máy tính.

2.1 Postgres Container

Postgres được cài đặt thông qua Hub của Docker. Ta có thể vào https://hub.docker.com/_/postgres để tải docker bằng tay về cài đặt. Nhưng đơn giản nhất cài bằng dòng lệnh từ Docker.

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

Trong dòng lệnh trên :9.6 là phiên bản của container của Postgres. Nó được đặt tên tương ứng với phiên bản của Postgres thực tế.

Khi chạy dòng lệnh, nếu container Postgres với phiên bản 9.6 đã tồn tại thì nó sẽ tạo ra để chạy. Nếu không Docker Engine sẽ tiến hành tải nó về thông qua dòng lệnh dưới.

docker pull postgres:9.6

Lưu ý: Nếu ta không khai báo phiên bản của container thì docker sẽ tự động tải phiên bản mới nhất của của container đó. Tương đương :latest

2.2 Odoo Container

Tương tự Postgres, Odoo container cũng được tải từ Hub Docker với dòng lệnh.

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

Chúng ta cần lưu ý đến 4 tham số:

  1. -p Chạy container Odoo với cổng 8069 và ánh xạ nó vào cổng 8069 của máy tính đang chạy docker đó.
  2. --name Tạo container với tên nào đó.
  3. --link Tạo container liên kết đến một container khác.
  4. -t Tên của container odoo cùng phiên bản mà ta đang cần chạy.

Nếu máy tính ta chưa tồn tại container odoo:11.0, Docker Engine sẽ tải nó về
để tạo ra container.

2.3 Kiểm tra kết quả

Vào trình duyệt gõ địa chỉ http://localhost:8069. Website Odoo sẽ hiện ra để ta thiết lập cài đặt nó.

Ta có thể tắt/ mở/ khởi động lại nó bằng cách tắt/ mở/ khởi động trên Odoo container.

docker start odoo
docker stop odoo
docker restart odoo

odoo ở đây là tên của container mà ta đã tạo trong dòng lệnh ở trên.

Bản thân Odoo container là một hệ điều hành từ debian. Do đó ta có thể truy cập vào để xem trạng thái các thư mục.

docker exec –u root –t odoo /bin/bash

Với dòng lệnh trên ta có thể truy cập vào Odoo container với tài khoản là root. Ta có thể thực hiện các dòng lệnh trên hệ điều hành debian ở đây.

Nếu ta cài đặt Odoo từ Hub Docker thì ta chỉ sử dụng được các mô đun mặc định được hỗ trợ trong Odoo với phiên bản hiện tại. Nếu ta muốn thêm các mô đun mà ta điểu chỉnh, thêm vào thì cần sử dụng docker-compose để điều chỉnh các tập tin liên quan đến cấu hình đến Odoo.

3. Cài đặt Odoo bằng Docker Compose

Docker Compose giúp ta tích hợp nhiều docker container trên một tập tin để có thể chạy nó một cách nhanh chóng.

3.1 Tạo một docker-compose.yml

Đây là một ví dụ về Docker Compose trên Odoo 11 https://github.com/minhng92/odoo-11-docker-compose/blob/master/docker-compose.yml từ minhng92.

version: '2'
services:
  db:
    image: postgres:9.5
    environment:
      - POSTGRES_PASSWORD=odoo
      - POSTGRES_USER=odoo
    restart: always             # run as a service  

  odoo11:
    image: odoo:11.0
    depends_on:
      - db
    ports:
      - "8069:8069"
    tty: true
    command: -- --dev=reload
#    command: odoo scaffold /mnt/extra-addons/test_module
    volumes:
      - ./addons:/mnt/extra-addons
      - ./etc:/etc/odoo
    restart: always             # run as a service

Trong docker-compose.yml. Ta đang sử dụng 2 container: postgres và odoo.

Ta cần quan tâm đến volumes. Nó được sử dụng để giúp ánh xạ thư mục trong máy tính hiện tại đến thư mục của container docker. Cụ thể trong trường hợp này ta sử dụng 2 thư mục.

  1. addons: Thư mục này giúp ta ánh xạ thư mục chứa các mô đun do ta chỉnh sửa đến thư mục addons trong Odoo container. Điều này giúp ta có thể cài đặt thêm các mô đun mới hoặc tinh chỉnh các mô đun đang có trong Odoo.
  2. etc<: Thư mục chứa tập tin cấu hình Odoo. Nó giúp ta có thể chạy Odoo với cổng nào. Đường dẫn thư mục để ta thêm các mô đun mới và các cấu hình khác liên quan đến Odoo.

3.2 Chạy docker-compose.yml

Để có thể chạy được Odoo. Ta cần thực hiện dòng lệnh

docker-compose up
docker-compose up –d    // 
docker-compose ps       // show containers in docker-compose
docker-compose build
docker-compose config

Ta có thể xóa các container đang chạy trong docker-compose hiện tại bằng lệnh.

docker-compose rm

Trên là các dòng lệnh thường được sử dụng trong docker-compose giúp ta dể dàng quản lý điều kiển các container được tạo ra từ docker-compose.

4. Tài liệu tham khảo

  1. Vultr Holdings Corporation. Installing
    Docker CE on Ubuntu 16.04. https://www.vultr.com/docs/installing-docker-ce-on-ubuntu-16-04.
    [Online] 05 2019.
  2. Github.com.
    Install Odoo. https://github.com/it-projects-llc/install-odoo. [Online]
    05 2019.
  3. —. Docker Compose
    for Odoo 11. https://github.com/minhng92/odoo-11-docker-compose. [Online]
    05 2019.
  4. Duy, Nguyễn
    Văn.
    Docker – những kiến thức cơ bản phần 3. viblo.asia. [Online]
    05 2019. https://viblo.asia/p/docker-nhung-kien-thuc-co-ban-phan-3-4dbZNoovlYM.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *