รายการ docker container มี 2 รายการแยกกันดังนี้
- odoo : 13.0
- postgres : 11.0
การทำงานของแต่ละ container เสมือนมี server แยกทำงานกัน container ละตัว
ใช้ประกอบการอบรม การพัฒนาโปรแกรมด้วย Odoo ERP ของชุมชน Thai OCA
ทางเลือกในการใช้ Docker มีหลายวิธี ท่านอาจะติดตั้ง Docker ใน Windows
https://docs.docker.com/docker-for-windows/install/
หรือถ้าต้องการความเหมือนจริง สามารถติดตั้งโปรแกรม Virtualbox แล้วลง Linux Ubuntu ใน Virtualbox
โดย Download ไฟล์ ISO Image มาจำลองเป็นแผ่นติดตั้งใน Virtualbox ได้
https://www.virtualbox.org/wiki/Downloads
https://ubuntu.com/download/server
การตั้งค่าการ์ดแลนใน vitualbox อาจจะใช้ bridge mode ตัวเดียว
จำลองเป็นการ์ดของอีกเครื่องที่อยู่ในวงแลนเดียวกันในสำนักงาน
ซึ่งเครื่องอื่นสามารถเข้ามาชมเว็บ odoo ของเราได้
การเชื่อมต่อระบบเข้า server สามารถใช้โปรแกรม putty และ winscp
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
https://winscp.net/eng/download.php
ที่อยากแนะนำที่สุดคือ ลองลง ubuntu desktop ในเครื่องเลยดีกว่า มันไม่ได้เลวร้ายอย่างที่คิด แล้วเอา windows ไปลงใน virtualbox แทน
เครื่องที่จะใช้งานต้องติดตั้ง docker และ docker-compose ให้เรียบร้อย ถ้าเป็น Linux ได้จะดีมาก
แหล่งศึกษาวิธีการติดตั้ง docker ใน linux
https://linuxize.com/post/how-to-install-and-use-docker-on-ubuntu-18-04/
การติดตั้ง docker-compose
https://linuxize.com/post/how-to-install-and-use-docker-compose-on-ubuntu-18-04/
ในที่นี้ขอให้สร้าง folder /var/docker/ ขึ้นมา
sudo mkdir -p /var/docker
chmod 777 /var/docker
cd /var/docker
เราจะเริ่ม clone โปรเจค docker มาลงในเครื่องด้วยคำสั่ง git
git clone https://github.com/songwutk/odoo13-docker-compose-thaioca
cd odoo-13-docker-compose
Change the folder permission to make sure that the container is able to access the directory:
กำหนดให้โฟลเดอร์ addons และ etc เขียนได้ทุกระดับ user
$ sudo chmod -R 777 addons
$ sudo chmod -R 777 etc
$ sudo chmod -R 777 log
$ sudo chmod -R 777 pgbackup
Start the container: เริ่มขึ้นระบบ
$ docker-compose up -d
- Then open
localhost:8069
to access Odoo 13.0. If you want to start the server with a different port, change 8069 to another value:
การเข้าเว็บให้ชี้ไปที่ port 8069 เช่น localhost:8069 หรือ http://(ip):8069 เป็นต้น
# ข้อความใน docker-compose.yml
# -"ด้านนอกฝั่ง user":"ด้านใน docker container"
ports:
- "8069:8069"
docker exec -t --user root odoo rm -f /etc/localtime
docker exec -t --user root odoo ln -s /usr/share/zoneinfo/Asia/Bangkok /etc/localtime
เราสามารถเปิดการใช้งาน log เพื่อเช็คการทำงานของ sql และ odoo ได้ดังนี้
cd pgctrl
bash turn_on_log.sh
เพื่อความง่ายในการแยกแยะการทำงานเบื้องหลัง อยากให้ท่านเปิด terminal 2 session เพื่อรันคำสั่งดังนี้
tail log/odoo-server.log -f
tail log/pgsql/pgsql.csv -f
ระบบจะแสดง log ของ odoo และ sql query ของ postgresql ให้เห็นแบบ realtime
** คำเตือน : ระบบเปิด log ของ odoo แบบ 100% โปรดระวังขนาดไฟล์ใน log/odoo-server.log และ log/pgsql/pgsql.csv
To change Odoo configuration, edit file: etc/odoo.conf.
การปิด log อันมหาศาลจาก odoo : etc/odoo.conf
; log_level = info
การปิด log อันมหาศาลจาก pgsql : etc/pgsql/postgresql.conf
; log_destination = 'csvlog' # Valid values are combinations of
; logging_collector = on # Enable capturing of stderr and csvlog
วิธีการ
cd pgctrl
bash turn_off_log.sh
localhost:5050 หรือ http://(ip):5050
ท่านจะพบกับ pgadmin
ใส่ username password ดังรูป
ชื่อ hostname pgsql จะเป็นชื่อใน docker container ซึ่งระบบจะมองเห็นกันเอง
หากต้องการเชื่อมต่อด้วย Navicat สามารถใช้ username odoo / password odoo / ip server
ทดลองสร้าง Module ขึ้นมาใหม่ในชื่อ phone book
The addons folder contains custom addons. Just put your custom addons if you have any.
Create new module "phonebook" by command
ใช้คำสั่ง docker ดังนี้
docker exec -t odoo odoo scaffold /mnt/extra-addons/phonebook
Basic module stater is in addons host folder
ระบบจะมีการสร้างไฟล์พื้นฐานของ Module ไว้ที่โฟลเดอร์ addons
# ข้อความใน docker-compose.yml
# เปิดประตูมิติเชื่อมหากัน
# folder เครื่องของเรา : folder ที่อยู่ใน docker container
volumes:
- ./addons:/mnt/extra-addons
https://www.odoo.com/documentation/13.0/howtos/backend.html
คัดลอกไฟล์ config ออกมาจาก container ด้วยคำสั่ง docker cp pgsql:/var/lib/postgresql/data/postgresql.conf .
แก้ไขไฟล์ postgresql.conf ตามค่าที่แนะนำในเว็บ https://pgtune.leopard.in.ua/#/
บันทึกไฟล์ config กลับไปใน container ด้วยคำสั่ง
docker cp postgresql.conf pgsql:/var/lib/postgresql/data/
restart container ด้วยคำสั่ง docker-compose restart