Packaging Odoo based Docker

This page contains steps for packaging different components and add-ons, of a module into a docker image. These instructions must be helpful for System Integrators to add custom Odoo add-ons and create a package.

Procedure

The steps to package OpenG2P docker are given below.

  • Clone the https://github.com/OpenG2P/openg2p-packaging and go to the packaging directory.

  • Create a text file, for examplemy-package.txt. This signifies a package. This file should include all OpenG2P modules (repositories) to be packaged into a new docker. Each line describes one repository to include, and the structure of each line looks like this.

repo_name = git://<github branch name>//<github url to pull from>
repo2_name = file://<path of the package in local system>
  • Any underscore in the repository name will be converted to a hyphen during installation. For example,

    repo_name = git://<github branch name>//<github url to pull from>

    This is internally converted to repo-name.

  • The above configuration can be made via environment variables also.

    • Any variable with the prefix G2P_PACKAGE_my_package_ will be considered as a repository to install i.e., G2P_PACKAGE_<package_name>_<repo_name>. For example,

      G2P_PACKAGE_my_package_repo3_name=git://<github branch name>//<github url to pull from>
    • These environment variables can be added in .env file (in the same folder). The .env file will automatically be considered.

    • If the same package is available in my-package.txt, .env, and environment variable, then their preference order will be considered (highest to lowest).

      • .env file.

      • Environment variable.

      • my-package.txt

    • Use the .env to overload packages from my-package.txt

  • Run the following to download all packages.

    ./package.sh my-package.txt
  • After downloading packages, run the following to build docker image.

    docker build . -t <docker image name>
  • Then push the image.

    docker push <docker image name>

Notes:

  • The above uses Bitnami's Odoo image as base.

  • This script also pulls in any OCA dependencies configured, in oca_dependencies.txt inside each package. Use this environment variable to change the version of OCA dependencies to be pulled, OCA_DEPENDENCY_VERSION (defaults to 15.0).

  • This also installs any python requirements configured in requirements.txt inside each package.

  • Reference packages can be found in packages directory inside packaging directory.

Last updated

Logo

Copyright © OpenG2P. This work is licensed under Creative Common Attribution (CC-BY-4.0) International license unless otherwise noted.