🏘️
Odooのプラグイン開発環境をサクっと構築
軽く自己紹介。
オープンソースのERPで最も使われているOdooのプラグインで不動産管理システムを開発しています。
日本のユーザー数が少ないせいなのか、Odooに関する日本語の情報は乏しいようです。
日本のユーザーが増えることを願いつつ、Odoo関連の情報を発信していきます。
今回は、docker-composeを使って手っ取り早くOdooプラグインの開発環境を構築します。
docker-compose.yml
version: '3.1'
services:
web:
image: odoo:15.0
depends_on:
- db
ports:
- "8069:8069"
platform: linux/amd64
volumes:
- odoo-web-data:/var/lib/odoo
- ./config:/etc/odoo
- ./addons:/mnt/extra-addons
- ./sh:/mnt/sh
environment:
- PASSWORD_FILE=/run/secrets/postgresql_password
secrets:
- postgresql_password
entrypoint: /mnt/sh/entrypoint.sh
command: odoo
db:
image: postgres:13
environment:
- POSTGRES_DB=postgres
- POSTGRES_PASSWORD_FILE=/run/secrets/postgresql_password
- POSTGRES_USER=odoo
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- odoo-db-data:/var/lib/postgresql/data/pgdata
secrets:
- postgresql_password
volumes:
odoo-web-data:
odoo-db-data:
secrets:
postgresql_password:
file: odoo_pg_pass
odoo_pg_pass
password
config/odoo.conf
[options]
# data_dir = /var/run/odoo
log_level = debug
# logfile = /var/log/odoo/odoo-server.log
# pidfile = /var/run/odoo/odoo.pid
# limit_time_cpu = 600
# limit_time_real = 1200
# max_cron_threads = 0
addons_path = /mnt/extra-addons
sh/entrypoint.sh
#!/bin/bash
set -e
if [ -v PASSWORD_FILE ]; then
PASSWORD="$(< $PASSWORD_FILE)"
fi
# set the postgres database host, port, user and password according to the environment
# and pass them as arguments to the odoo process if not present in the config file
: ${HOST:=${DB_PORT_5432_TCP_ADDR:='db'}}
: ${PORT:=${DB_PORT_5432_TCP_PORT:=5432}}
: ${USER:=${DB_ENV_POSTGRES_USER:=${POSTGRES_USER:='odoo'}}}
: ${PASSWORD:=${DB_ENV_POSTGRES_PASSWORD:=${POSTGRES_PASSWORD:='odoo'}}}
DB_ARGS=()
function check_config() {
param="$1"
value="$2"
if grep -q -E "^\s*\b${param}\b\s*=" "$ODOO_RC" ; then
value=$(grep -E "^\s*\b${param}\b\s*=" "$ODOO_RC" |cut -d " " -f3|sed 's/["\n\r]//g')
fi;
DB_ARGS+=("--${param}")
DB_ARGS+=("${value}")
}
check_config "db_host" "$HOST"
check_config "db_port" "$PORT"
check_config "db_user" "$USER"
check_config "db_password" "$PASSWORD"
case "$1" in
-- | odoo)
shift
if [[ "$1" == "scaffold" ]] ; then
exec odoo "$@"
else
wait-for-psql.py ${DB_ARGS[@]} --timeout=30
exec odoo "$@" "${DB_ARGS[@]}"
fi
;;
-*)
wait-for-psql.py ${DB_ARGS[@]} --timeout=30
exec odoo "$@" "${DB_ARGS[@]}" -u tree_manager
;;
*)
exec "$@"
esac
exit 1
起動します。
$ docker-compose up
localhost:8069
をブラウザで開くと初期設定画面が開きます。
パスワードなど適当に設定すればOdooが使えるようになります。
Discussion