Odoo -г Docker-с ажилууллах
Odoo
-н тухай- Bitnami-г ашиглан Bitnami-docker-odoo - ажилууллах
docker-compose
- коммандын талаар- Docker Volume & persistent volume claim талаар
- Docker-compouse ажилууллах
Odoo-н тухайд
Нээлттэй эх дээрх бизнес апплкэйшн ERP нь вэб дээр бүрэн ажиллах, ѳѳр системтэй интеграци хийх боломж, l10n зэргийг шийдсэн цогц апплкэйшн юм.
Bitnami-н тухайд
Нээлттэй эх дээр суурьтай OSS софтвейрыг хялбар аргаар хүссэн орчин дээр суулган ажилуулна. Клоуд хостинг хийж байгаа бол Helm Chart -г ашиглан күбэрнетес, клустер-г хялбархан тохируулна. Гэхдээ күбэрнетес, клустертэй ажиллаж байгаа үед гарын авлага, документ, тест зэргийг сайтар судалсны дараа турших хэрэгтэй.
Docker Compose
Compose нь нэгээс олон контейнеруудыг нэг дор ажилууллах үед YAML файл дотор тохируулсан бүтцийг ашиглан докер ажиллах процесс юм.
Докэр Compose үндсэн бүтэц:
Dockerfile
docker-compose.yml
- апплкэйшн тус бүрийн бүтцийг тодорхойлох хэсэг. Файл дотор байгаа бүтцийн дагуу апплкэйшн серверүүдийг асааж тусгаарлагдсан орчин үүсгэнэ.
version: '2'
services:
postgresql:
image: 'docker.io/bitnami/postgresql:11-debian-10'
environment:
- ALLOW_EMPTY_PASSWORD=yes
volumes:
- 'postgresql_data:/bitnami/postgresql'
odoo:
image: 'docker.io/bitnami/odoo:14-debian-10'
ports:
- '80:8069'
- '443:8071'
volumes:
- 'odoo_data:/bitnami'
depends_on:
- postgresql
volumes:
postgresql_data:
driver: local
odoo_data:
driver: local
Bitnami дах Odoo V14-н сервер, апплкэйшнг тодорхойлж байгаа docker-compose.yml -г задалж үзвэл postgresql
, odoo
гэсэн хоёр контейнераас services
бүрдэж байна.
ALLOW_EMPTY_PASSWORD=yes
- ѳгѳгдлийн санг нууц үггүйгээр хандалт хийдэг болгож байна (тест хийж байгаа үед тохиромжтой). Продакшн орчинд тохиромжгүй сонголт.ports
- [host-port]:[container-port] Хостинг портыг80
,443
контейнер дэх8069
,8071
порттой холбож байна. CLI - рүү бичвэл:
$ docker run -p 80:8069 --name odoo
depends_on
- Compose хийхдээ эхлээд postgresql тодорхойлсон байна. Үүний дараа Odoo-г тохируулж байна. Ингэснээр ялгаатай хоёр контейнерээс хамааралтай байх нѳхцлийг тодорхойлж ѳгнѳ. Ѳѳрѳѳр хэлбэл нетворкинг хийж байгаа үед дарааллыг тодорхойлж ѳгѳх ба Odoo асахаас ѳмнѳ нь заавал Postgresql ассан байх ёстойг compose-д сануулж байна гэж хэлж болох юм.volumes
- compose хийгдэж байгаа YAML-г CLI -руу хѳрвүүлбэл:
$ docker volume create --driver local --name postgresql_data
$ docker volume create --driver local --name odoo_data
буюу [Докэр хост] дотор odoo_data, postgresql_data гэсэн нэртэй local volume үүсгэж ѳгнѳ. Докэр хост-г дэлгэрүүлбэл:
Докэр ажиллах бүтэц нь Docker Engine тѳвтэй ба дараах гурван хэсгээс бүрдэнэ.
- Docker daemon - Docker API хүсэлтүүд хүлээн авч image, container, network, volume - зэргийн зохион байгуулалт хийх, бусад Docker Service-үүдтэй deamon -ѳѳр дамжин холбогдох гэх мэт.
- Docker CLI (Command Line Interface)
- REST API - Клиенттай холбогдох, Docker deamon-той уялдан харилцана.
Ѳѳрѳѳр хэлбэл докэр дотор ажиллаж байгааг image-с тусад нь volume үүсгэн ѳгч байна. Ингэснээр тухайн контейнер унтарсан ч дата персист тѳлѳвтэй дахин ашиглаж болно гэсэн юм. –driver гэдэг нь Докэр plugin ашиглаад зѳвхѳн Докэр роот-с хандалт хийх эрх локал volume үүсгэж байна. Датаг холбох ѳѳр нэг арга нь docker-compose дотор хостинг directory-г оноох боломжтой. Гэхдээ non-root хэрэглэгчийн хувьд харгалзах хандах эрх байгааг нягтлан шалгах хэрэгтэй. Жишээ нь хост direcory-г тодорхойж буй:
volumes:
- 'odoo_data:/bitnami' #Docker Host-с дотор тодорхойлсон volume.
- './extra-addons:/bitnami/odoo/addons' # Хост directory-г Container руу оруулж байна.
odoo_data:/bitnami
дотор Odoo-г ажиллаж байх үеийн filestore -д Docker Host дотор odoo_data
volume-д үүснэ. Docker volume руу зѳвхѳн Docker hosting хийж байгаа root хэрэглэгч хандах боломжтойг анхаарна уу.
./extra-addons:/bitnami/odoo/addons
- ./extra-addons, directory -г Odoo контейнер дах /bitnami/odoo/addons руу оруулж байна. Ингэснээр гуравдагч эдгээдийн модиуль болон хѳгжүүлэлтийн орчин дах нэмэлт модиулыг суулган ажиллуулах боломжтой болно.
/bitnami/odoo/addons
-г conf файл дотор тодорхойлж ѳгсѳн эсэхийг шалгах:
$ docker exec -it <container-name> cat /opt/bitnami/odoo/odoo-server.conf
Bitnami -г дах Dockerfile болон нэмэлт pkg суух үед Odoo-гийн коор модиулидын directory болон нэмэлтээр суулгах модиулын directory-г тодорхойлон .conf файлд тохируулсан байгааг харж болно.
[options]
addons_path = /opt/bitnami/odoo/odoo/addons,/opt/bitnami/odoo/addons
...
docker-compose.yml - файл сүүлийн байдлаар:
version: '2'
services:
postgresql:
image: 'docker.io/bitnami/postgresql:11-debian-10'
environment:
- ALLOW_EMPTY_PASSWORD=yes
volumes:
- 'postgresql_data:/bitnami/postgresql'
odoo:
image: 'docker.io/bitnami/odoo:14-debian-10'
ports:
- '80:8069'
- '443:8071'
volumes:
- 'odoo_data:/bitnami'
- './extra-addons:/bitnami/odoo/addons'
depends_on:
- postgresql
volumes:
postgresql_data:
driver: local
odoo_data:
driver: local
...
# tree
/bitnami-odoo/
|-- extra-addons
|-- docker-compose.yml
...
Docker-compose ажилууллах:
$ docker-compose up -d
Image-үүд татаж дуусан networking хийн done болсон бол:
Status: Downloaded newer image for bitnami/odoo:14-debian-10
Creating bitnami-odoo_postgresql_1 ... done
Creating bitnami-odoo_odoo_1 ... done
http://localhost/web/login
хаягаар хандан bitnami -с тодорхойлсон нэвтрэх нэр: user@example.com нууц үг: bitnami, Odoo руу нэвтрэн орно. Эсхүл шинээр db тохируулах бол ‘http://localhost/web/database/selector
- хаягаар орон тохируулж болно.
Docker-compose унтраах:
$ docker-compose down
Volume шалгах:
docker volume ls
Volume устгах:
docker volume rm <volume-name>