Odoo și Docker

29/10/2021 Scris de 0 comentarii

Este ușor să extinzi Odoo. Și este și mai ușor odată ce proiectul tău folosește Docker.

După mai multe tentative eșuate în urma cărora reveneam la Vagrant + Virtual Box, acum am reușit să pun la punct proiectul local cu Docker. Și cel mai important lucru: păstrarea sesiunilor între restart-ul/recrearea containerului Python.

Dar, vorba lungă sărăcia omului. Mai jos sunt fișierele de configurare pentru orice proiect Odoo. Folosește două containere: python și postgres

version: '3.2'
services:
  python:
    build:
      context: ./docker/python
      dockerfile: Dockerfile
    depends_on:
      - postgres
    ports:
      - "8069:8069"
    volumes:
      - odoo-local-share:/root/.local/share/Odoo
  postgres:
    build:
      context: ./docker/postgres/
      dockerfile: Dockerfile
    environment:
      - POSTGRES_PASSWORD=odoo
      - POSTGRES_USER=odoo
      - POSTGRES_DB=dbname
    restart: unless-stopped             # run as a service
    ports:
      - "5432:5432"
    volumes:
      - postgres-vol:/var/lib/postgresql/data
      - /opt/proiect/initial-data/server.sql:/docker-entrypoint-initdb.d/1-server.sql
    stop_signal: SIGINT

volumes:
  postgres-vol:
  odoo-local-share:

Dockerfile pentru Python

FROM python:3.6.9

RUN apt update
RUN apt upgrade -y
RUN apt install -y git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less python3-apt

COPY requirements.txt .
RUN pip3 install wheel
RUN pip3 install -r requirements.txt

EXPOSE 8069

Dockerfile pentru Postgres

FROM postgres:10
# add the 'postgres' admin role
USER postgres
EXPOSE 5432

Sunt convins că este loc pentru optimizări, dar asta o las pentru voi.