#!/bin/sh set -e if [ -z "${NOGOSU:-}" ]; then GOSU="gosu odoo" else GOSU="" fi envsubst < /opt/odoo/etc/odoo.conf.tpl > /opt/odoo/etc/odoo.conf chown odoo: /opt/odoo/etc/odoo.conf DATA_DIR="${DATA_DIR:-/data/odoo}" for dir in "${DATA_DIR}/addons" "${DATA_DIR}/filestore" "${DATA_DIR}/sessions"; do mkdir -p "${dir}" if [ ! "$(stat -c '%U' "${dir}")" = "odoo" ]; then chown -R odoo: "${dir}" fi done export PGHOST="${DB_HOST:-db}" export PGPORT="${DB_PORT:-5432}" export PGUSER="${DB_USER:-odoo}" export PGPASSWORD="${DB_PASSWORD:-odoo}" export PGDATABASE="${DB_NAME:-odoo}" CMD=$(basename "$1") if [ "${CMD}" = "odoo" ] \ || [ "${CMD}" = "odoo.py" ] \ || [ "${CMD}" = "odoo-bin" ] \ || [ "${CMD}" = "openerp-server" ]; then # wait db while ! psql -l -h "${PGHOST}" -U "${PGUSER}" >/dev/null 2>&1; do count="$(( ${count:-0}+1 ))" [ "${count}" -eq "${DB_WAIT:-24}" ] \ && echo "ERROR: unable to connect to PGHOST ${PGHOST} with PGUSER ${PGUSER}" \ && exit 1 sleep 1 done # create db if ! psql -lqtA -h "${PGHOST}" -U "${PGUSER}" | grep -q "^${PGDATABASE}|"; then createdb -h "${PGHOST}" -U "${PGUSER}" -O "${PGUSER}" "${PGDATABASE}" fi # update db MARABUNTA_DB_HOST="${PGHOST}" \ MARABUNTA_DATABASE="${PGDATABASE}" \ MARABUNTA_DB_USER="${PGUSER}" \ MARABUNTA_DB_PASSWORD="${PGPASSWORD}" \ MARABUNTA_DB_PORT="${PGPORT}" \ ${GOSU} unbuffer marabunta --migration-file /opt/odoo/migration.yml # customs entrypoints ENTRYPOINT_DIR=/opt/odoo/entrypoint.d if [ -d "${ENTRYPOINT_DIR}" ]; then ${GOSU} run-parts "${ENTRYPOINT_DIR}" fi fi exec ${GOSU} "$@"