Sign inSign up

vladimirovrosen/devcontainer-odoo

By vladimirovrosen

•Updated about 1 year ago

devcontainer for odoo

Image
Developer tools
0

572

vladimirovrosen/devcontainer-odoo repository overview

⁠Quick reference

  • Maintainer by:
  1. Rosen Vladimirov [email protected]⁠

⁠What is

This is an empty dev container for use in PyCharm 2024+.

⁠How to start

Install the odoo from sources follow this manual What is https://www.odoo.com/documentation/16.0/administration/install/source.html⁠

  1. Create folder .devcontainer inside:
  2. create inside files:
    • devcontainer.json
    {    
      "name": "Odoo 16.0 & Postgres",
      "dockerComposeFile": "docker-compose.yml",
      "service": "odoo",
      "workspaceFolder": "/opt/odoo/base/odoo-16.0",
      "forwardPorts": ["db:5432", "odoo-16:8069", "odoo-16:8071", odoo-16:8072"],
      // "postCreateCommand": "pip3 install --user -r requirements.txt",
    
      // Configure tool-specific properties.
      "customizations" : {
        "jetbrains" : {
          "backend" : "PyCharm"
        }
      },
    
      "remoteUser": "root",
      "containerUser": "odoo",
    }
    
    • docker-compose.yml
    version: '3.8'
    
    services:
      odoo:
        container_name: odoo-16
        image: vladimirovrosen/devcontainer-odoo:16.0
        volumes:
          - /opt/odoo-sa/odoo-16.0:/opt/odoo/ee/odoo-16.0
          - /opt/oca/odoo-16.0:/opt/odoo/oca/odoo-16.0
          - /opt/odoo/rv/odoo-16.0:/opt/odoo/rv/odoo-16.0:cached
          - odoo-data:/var/lib/odoo
    
        # Overrides default command so things don't shut down after the process ends.
        command: sleep infinity
        # Runs app on the same network as the database container, allows "forwardPorts" in devcontainer.json function.
    #    network_mode: service:db
    
        # Use "forwardPorts" in **devcontainer.json** to forward an app port locally.
        # (Adding the "ports" property to this file will not forward from a Codespace.)
        ports:
          - "8069:8069"
          - "8071:8071"
          - "8072:8072"
    
      db:
        image: postgres:latest
        restart: unless-stopped
        container_name: db
        volumes:
          - postgres-data:/var/lib/postgresql/data
        environment:
          - POSTGRES_DB=postgres
          - POSTGRES_PASSWORD=odoo
          - POSTGRES_USER=odoo
    
        # Add "forwardPorts": ["5432"] to **devcontainer.json** to forward PostgreSQL locally.
        # (Adding the "ports" property to this file will not forward from a Codespace.)
    #    ports:
    #      - "5432:5432"
    
    volumes:
      postgres-data:
      odoo-data:
    
    • Dockerfile (optional)
    FROM mcr.microsoft.com/devcontainers/python:1-3.11-bullseye
    
    ENV PYTHONUNBUFFERED 1
    
    # Odoo configuration envarement
    ENV PATH "${PATH}:/opt/odoo/base/odoo-16.0"
    ENV ODOO_CONFIGURATION_FILE=/etc/odoo/odoo.conf
    ENV ODOO_GROUP="odoo"
    ENV ODOO_DATA_DIR=/var/lib/odoo
    ENV ODOO_LOG_DIR=/var/log/odoo
    ENV ODOO_USER="odoo"
    ENV GSFONTS_DIR=/usr/share/fonts/type1/gsfonts
    
    MAINTAINER Rosen Vladimirov <[email protected]>
    
    SHELL ["/bin/bash", "-xo", "pipefail", "-c"]
    
    # Generate locale C.UTF-8 for postgres and general locale data
    ENV LANG=C.UTF-8 \
        LC_ALL=C.UTF-8
    
    # Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf
    RUN apt-get update && \
        apt-get install -y --no-install-recommends \
            ca-certificates \
            curl \
            dirmngr \
            fonts-noto-cjk \
            gnupg \
            libssl-dev \
            node-less \
            npm \
            git \
            gsfonts \
            fonts-dejavu-core \
            fonts-freefont-ttf \
            fonts-freefont-otf \
            fonts-noto-core \
            fonts-inconsolata \
            fonts-font-awesome \
            fonts-roboto-unhinted \
            adduser \
            python-dev \
            libldap2-dev \
            libsasl2-dev \
            python3-magic \
            python3-odf \
            python3-pdfminer \
            python3-pip \
            python3-phonenumbers \
            python3-pyldap \
            python3-qrcode \
            python3-setuptools \
            python3-slugify \
            python3-watchdog \
            python3-xlwt \
            python3-pypdf2 \
            python3-babel \
            python3-chardet \
            python3-dateutil \
            python3-decorator \
            python3-freezegun \
            python3-geoip2 \
            python3-pil \
            python3-jinja2 \
            python3-libsass \
            python3-lxml \
            python3-num2words \
            python3-ofxparse \
            python3-passlib \
            python3-polib \
            python3-psutil \
            python3-psycopg2 \
            python3-pydot \
            python3-openssl \
            python3-pypdf2 \
            python3-rjsmin \
            python3-qrcode \
            python3-renderpm \
            python3-reportlab \
            python3-requests \
            python3-stdnum \
            python3-tz \
            python3-vobject \
            python3-werkzeug \
            python3-xlsxwriter \
            python3-xlrd \
            python3-zeep \
            xz-utils
    RUN curl -o wkhtmltox.deb -sSL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bullseye_amd64.deb \
        && echo 9df8dd7b1e99782f1cfa19aca665969bbd9cc159 wkhtmltox.deb | sha1sum -c - \
        && apt-get install -y --no-install-recommends ./wkhtmltox.deb \
        && rm -rf /var/lib/apt/lists/* wkhtmltox.deb
    
    # install latest postgresql-client
    RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' > /etc/apt/sources.list.d/pgdg.list \
        && GNUPGHOME="$(mktemp -d)" \
        && export GNUPGHOME \
        && repokey='B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8' \
        && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${repokey}" \
        && gpg --batch --armor --export "${repokey}" > /etc/apt/trusted.gpg.d/pgdg.gpg.asc \
        && gpgconf --kill all \
        && rm -rf "$GNUPGHOME" \
        && apt-get update  \
        && apt-get install --no-install-recommends -y postgresql-client \
        && rm -f /etc/apt/sources.list.d/pgdg.list \
        && rm -rf /var/lib/apt/lists/*
    
    # Install rtlcss (on Debian buster)
    RUN npm install -g rtlcss
    
    RUN adduser --disabled-password --shell /bin/bash odoo  \
        && mkdir -p /opt/odoo/base/odoo-16.0 \
        && mkdir -p /opt/odoo/ee/odoo-16.0 \
        && mkdir -p /opt/odoo/oca/odoo-16.0 \
        && mkdir -p /opt/odoo/rv/odoo-16.0 \
        && mkdir -p /mnt/extra-addons \
        && mkdir -p /var/lib/odoo/{addons,filestore,sessions} \
        && mkdir -p /var/log/odoo
    #    && git clone -b 16.0 --single-branch https://github.com/odoo/odoo.git /opt/odoo/base/odoo-16.0
    
    # Copy entrypoint script and Odoo configuration file
    COPY ./etc/odoo.conf /etc/odoo/
    COPY ./bin/entrypoint.sh /opt/odoo/base/odoo-16.0/
    COPY ./bin/wait-for-psql.py /usr/bin
    
    RUN chmod +x /opt/odoo/base/odoo-16.0/entrypoint.sh \
        && chmod +x /usr/bin/wait-for-psql.py \
        && chown -R odoo:odoo /var/lib/odoo \
        && chown -R odoo:odoo /var/log/odoo \
        && usermod odoo --home /var/lib/odoo
    #    && pip3 install -r /opt/odoo/base/odoo-16.0/requirements.txt
    
    VOLUME ["/var/lib/odoo"]
    
    # Expose Odoo services
    EXPOSE 8069 8071 8072
    
    # Set default user when running the container
    USER odoo
    WORKDIR /opt/odoo/base/odoo-16.0
    
    #ENTRYPOINT ["entrypoint.sh"]
    #CMD ["odoo-bin"]
    #ENTRYPOINT ["python3"]
    #CMD ["/opt/odoo/base/odoo-16.0/odoo-bin", "-c", "/etc/odoo/odoo.conf"]
    

Tag summary

Content type

Image

Digest

sha256:65aa89678…

Size

923.3 MB

Last updated

about 1 year ago

docker pull vladimirovrosen/devcontainer-odoo:18.0