63 lines
1.6 KiB
Bash
63 lines
1.6 KiB
Bash
#!/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} "$@"
|