This commit is contained in:
Yhael S
2023-05-10 01:34:55 -05:00
parent be46ba8b75
commit 45d19223c7
7 changed files with 227 additions and 170 deletions

View File

@@ -25,6 +25,7 @@ PGADMIN_DOMAIN=pgadmin.odoo.test
PGADMIN_PASSWORD=${DB_PASSWORD} PGADMIN_PASSWORD=${DB_PASSWORD}
LOAD_LANGUAGE=en_US LOAD_LANGUAGE=en_US
DEV_MODE=False DEV_MODE=False
DEBUG_MODE=False
#------------------------------# #------------------------------#
# Project Configurations # # Project Configurations #
@@ -68,9 +69,12 @@ DATA_DIR=/var/lib/odoo
# HTTP # HTTP
HTTP_INTERFACE=0.0.0.0 HTTP_INTERFACE=0.0.0.0
HTTP_PORT=8069 HTTP_PORT=8069
XMLRPCS_INTERFACE=0.0.0.0
XMLRPCS_PORT=8071
GEVENT_PORT=8072 GEVENT_PORT=8072
LONGPOLLING_PORT=0 LONGPOLLING_PORT=0
HTTP_ENABLE=True HTTP_ENABLE=True
XMLRPCS=True
PROXY_MODE=True PROXY_MODE=True
X_SENDFILE=False X_SENDFILE=False
@@ -124,6 +128,7 @@ DBFILTER=.*
# Advanced options # Advanced options
DEV_MODE=${DEV_MODE} DEV_MODE=${DEV_MODE}
DEBUG_MODE=${DEBUG_MODE}
SHELL_INTERFACE=ptpython SHELL_INTERFACE=ptpython
STOP_AFTER_INIT=False STOP_AFTER_INIT=False
OSV_MEMORY_COUNT_LIMIT=False OSV_MEMORY_COUNT_LIMIT=False

28
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,28 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Odoocker Debug",
"type": "python",
"request": "attach",
"host": "localhost",
"port": 8069,
"debugServer": 8071,
"justMyCode": false,
"pathMappings": [
{
"localRoot": "${workspaceFolder}/odoo/custom-addons",
"remoteRoot": "/usr/lib/python3/dist-packages/odoo/custom-addons"
},
{
"localRoot": "${workspaceFolder}/odoo/extra-addons",
"remoteRoot": "/usr/lib/python3/dist-packages/odoo/extra-addons"
},
// {
// "localRoot": "${workspaceFolder}/core/odoo",
// "remoteRoot": "/usr/bin/odoo"
// }
]
}
]
}

View File

@@ -18,3 +18,19 @@ services:
restart: 'no' restart: 'no'
ports: ports:
- 80:80 - 80:80
pgadmin:
image: dpage/pgadmin4:7.1
restart: unless-stopped
expose:
- 80
volumes:
- pgadmin-data:${PGADMIN_DATA}
environment:
- PGADMIN_DEFAULT_EMAIL
- PGADMIN_DEFAULT_PASSWORD
- VIRTUAL_HOST=${PGADMIN_VIRTUAL_HOST}
- LETSENCRYPT_HOST=${PGADMIN_LETSENCRYPT_HOST}
- LETSENCRYPT_EMAIL
networks:
- internal

View File

@@ -16,7 +16,7 @@ services:
- 443:443 - 443:443
letsencrypt: letsencrypt:
image: nginxproxy/acme-companion:2.2.4 image: nginxproxy/acme-companion:2.2.8
depends_on: depends_on:
- nginx-proxy - nginx-proxy
restart: unless-stopped restart: unless-stopped

View File

@@ -12,7 +12,6 @@ services:
- ./odoo/custom-addons:${CUSTOM_ADDONS} - ./odoo/custom-addons:${CUSTOM_ADDONS}
- ./odoo/entrypoint.sh:/entrypoint.sh - ./odoo/entrypoint.sh:/entrypoint.sh
- ./odoo/odoorc.sh:/odoorc.sh - ./odoo/odoorc.sh:/odoorc.sh
command: /usr/bin/python3 -m debugpy --listen ${HTTP_INTERFACE}:8888 /usr/bin/odoo --config ${ODOO_RC}
env_file: env_file:
- ./.env - ./.env
networks: networks:
@@ -36,7 +35,7 @@ services:
- internal - internal
nginx: nginx:
image: nginx:1.23.3 image: nginx:1.24.0
depends_on: depends_on:
- odoo - odoo
restart: unless-stopped restart: unless-stopped
@@ -54,24 +53,8 @@ services:
networks: networks:
- internal - internal
pgadmin:
image: dpage/pgadmin4:6.21
restart: unless-stopped
expose:
- 80
volumes:
- pgadmin-data:${PGADMIN_DATA}
environment:
- PGADMIN_DEFAULT_EMAIL
- PGADMIN_DEFAULT_PASSWORD
- VIRTUAL_HOST=${PGADMIN_VIRTUAL_HOST}
- LETSENCRYPT_HOST=${PGADMIN_LETSENCRYPT_HOST}
- LETSENCRYPT_EMAIL
networks:
- internal
nginx-proxy: nginx-proxy:
image: nginxproxy/nginx-proxy:1.2.0 image: nginxproxy/nginx-proxy:1.3.0
depends_on: depends_on:
- nginx - nginx
restart: unless-stopped restart: unless-stopped

View File

@@ -33,8 +33,11 @@ defaults=(
[HTTP_INTERFACE]=${HTTP_INTERFACE} [HTTP_INTERFACE]=${HTTP_INTERFACE}
[HTTP_PORT]=${HTTP_PORT} [HTTP_PORT]=${HTTP_PORT}
[XMLRPCS_INTERFACE]=${XMLRPCS_INTERFACE}
[XMLRPCS_PORT]=${XMLRPCS_PORT}
[GEVENT_PORT]=${GEVENT_PORT} [GEVENT_PORT]=${GEVENT_PORT}
[HTTP_ENABLE]=${HTTP_ENABLE} [HTTP_ENABLE]=${HTTP_ENABLE}
[XMLRPCS]=${XMLRPCS}
[PROXY_MODE]=${PROXY_MODE} [PROXY_MODE]=${PROXY_MODE}
[X_SENDFILE]=${X_SENDFILE} [X_SENDFILE]=${X_SENDFILE}
@@ -83,6 +86,7 @@ defaults=(
[LIST_DB]=${LIST_DB} [LIST_DB]=${LIST_DB}
[DEV_MODE]=${DEV_MODE} [DEV_MODE]=${DEV_MODE}
[DEBUG_MODE]=${DEBUG_MODE}
[SHELL_INTERFACE]=${SHELL_INTERFACE} [SHELL_INTERFACE]=${SHELL_INTERFACE}
[STOP_AFTER_INIT]=${STOP_AFTER_INIT} [STOP_AFTER_INIT]=${STOP_AFTER_INIT}
[OSV_MEMORY_COUNT_LIMIT]=${OSV_MEMORY_COUNT_LIMIT} [OSV_MEMORY_COUNT_LIMIT]=${OSV_MEMORY_COUNT_LIMIT}
@@ -106,252 +110,265 @@ template=$(cat << EOF
; Options not exposed on the command line. ; ; Options not exposed on the command line. ;
;------------------------------------------; ;------------------------------------------;
admin_passwd={ADMIN_PASSWD} admin_passwd = {ADMIN_PASSWD}
csv_internal_sep={CSV_INTERNAL_SEP} csv_internal_sep = {CSV_INTERNAL_SEP}
publisher_warranty_url={PUBLISHER_WARRANTY_URL} publisher_warranty_url = {PUBLISHER_WARRANTY_URL}
root_path={ROOT_PATH} root_path = {ROOT_PATH}
reportgz={REPORTGZ} reportgz = {REPORTGZ}
websocket_keep_alive_timeout={WEBSOCKET_KEEP_ALIVE_TIMEOUT} websocket_keep_alive_timeout = {WEBSOCKET_KEEP_ALIVE_TIMEOUT}
websocket_rate_limit_burst={WEBSOCKET_RATE_LIMIT_BURST} websocket_rate_limit_burst = {WEBSOCKET_RATE_LIMIT_BURST}
websocket_rate_limit_delay={WEBSOCKET_RATE_LIMIT_DELAY} websocket_rate_limit_delay = {WEBSOCKET_RATE_LIMIT_DELAY}
;-----------------------; ;-----------------------;
; Server startup config ; ; Server startup config ;
;-----------------------; ;-----------------------;
; --config | -c ; `--config | -c`
config={ODOO_RC} config = {ODOO_RC}
; --save ; `--save`
save={SAVE} save = {SAVE}
; --init | -i ; `--init | -i`
init={INIT} init = {INIT}
; --update | -u ; `--update | -u`
update={UPDATE} update = {UPDATE}
; --without-demo ; `--without-demo`
demo={DEMO} demo = {DEMO}
without_demo={WITHOUT_DEMO} without_demo = {WITHOUT_DEMO}
; --import-partial ; `--import-partial`
import_partial={IMPORT_PARTIAL} import_partial = {IMPORT_PARTIAL}
; --pidfile ; `--pidfile`
pidfile={PIDFILE} pidfile = {PIDFILE}
; --addons-path ; `--addons-path`
addons_path={ADDONS_PATH} addons_path = {ADDONS_PATH}
; --upgrade-path ; `--upgrade-path`
upgrade_path={UPGRADE_PATH} upgrade_path = {UPGRADE_PATH}
; --load ; `--load`
server_wide_modules={SERVER_WIDE_MODULES} server_wide_modules = {SERVER_WIDE_MODULES}
; --data-dir ; `--data-dir`
data_dir={DATA_DIR} data_dir = {DATA_DIR}
;------; ;------;
; HTTP ; ; HTTP ;
;------; ;------;
; --http-interface | --xmlrpc-interface ; `--http-interface | --xmlrpc-interface`
http_interface={HTTP_INTERFACE} http_interface = {HTTP_INTERFACE}
; --http-port | -p | --xmlrpc-port ; `--http-port | -p | --xmlrpc-port`
http_port={HTTP_PORT} http_port = {HTTP_PORT}
; --gevent-port ; `--xmlrpcs-interface`
gevent_port={GEVENT_PORT} xmlrpcs_interface = {XMLRPCS_INTERFACE}
; --no-http | --no-xmlrpc ; `--xmlrpcs-port`
http_enable={HTTP_ENABLE} xmlrpcs_port = {XMLRPCS_PORT}
; --proxy-mode ; `--gevent-port | --longpolling_port` (deprecated)
proxy_mode={PROXY_MODE} gevent_port = {GEVENT_PORT}
longpolling_port = 0
; --x-sendfile ; `--no-http | --no-xmlrpc`
x_sendfile={X_SENDFILE} http_enable = {HTTP_ENABLE}
; `--no-xmlrpcs`
xmlrpcs = {XMLRPCS}
; `--proxy-mode`
proxy_mode = {PROXY_MODE}
; `--x-sendfile`
x_sendfile = {X_SENDFILE}
;---------------; ;---------------;
; Testing Group ; ; Testing Group ;
;---------------; ;---------------;
; --test-file ; `--test-file`
test_file={TEST_FILE} test_file = {TEST_FILE}
; --test-enable ; `--test-enable`
test_enable={TEST_ENABLE} test_enable = {TEST_ENABLE}
; --test-tags ; `--test-tags`
test_tags={TEST_FILE} test_tags = {TEST_FILE}
; --screencasts ; `--screencasts`
screencasts={SCREENCASTS} screencasts = {SCREENCASTS}
; --screenshots ; `--screenshots`
screenshots={SCREENSHOTS} screenshots = {SCREENSHOTS}
;---------------; ;---------------;
; Logging Group ; ; Logging Group ;
;---------------; ;---------------;
; --logfile ; `--logfile`
logfile={LOGFILE} logfile = {LOGFILE}
; --syslog ; `--syslog`
syslog={SYSLOG} syslog = {SYSLOG}
; --log-handler | --log-web (--log-handler=odoo.http:DEBUG') | --log-sql (--log-handler=odoo.sql_db:DEBUG) ; `--log-handler | --log-web (--log-handler=odoo.http:DEBUG) | --log-sql (--log-handler=odoo.sql_db:DEBUG)`
log_handler={LOG_HANDLER} log_handler = {LOG_HANDLER}
; --log-db ; `--log-db`
log_db={LOG_DB} log_db = {LOG_DB}
; --log-db-level ; `--log-db-level`
log_db_level={LOG_DB_LEVEL} log_db_level = {LOG_DB_LEVEL}
; --log-level ; `--log-level`
log_level={LOG_LEVEL} log_level = {LOG_LEVEL}
;------------; ;------------;
; SMTP Group ; ; SMTP Group ;
;------------; ;------------;
; --email-from ; `--email-from`
email_from={EMAIL_FROM} email_from = {EMAIL_FROM}
; --from-filter ; `--from-filter`
from_filter={FROM_FILTER} from_filter = {FROM_FILTER}
; --smtp ; `--smtp`
smtp_server={SMTP_SERVER} smtp_server = {SMTP_SERVER}
; --smtp-port ; `--smtp-port`
smtp_port={SMTP_PORT} smtp_port = {SMTP_PORT}
; --smtp-ssl ; `--smtp-ssl`
smtp_ssl={SMTP_SSL} smtp_ssl = {SMTP_SSL}
; --smtp-user ; `--smtp-user`
smtp_user={SMTP_USER} smtp_user = {SMTP_USER}
; --smtp-password ; `--smtp-password`
smtp_password={SMTP_PASSWORD} smtp_password = {SMTP_PASSWORD}
; --smtp-ssl-certificate-filename ; `--smtp-ssl-certificate-filename`
smtp_ssl_certificate_filename={SMTP_SSL_CERTIFICATE_FILENAME} smtp_ssl_certificate_filename = {SMTP_SSL_CERTIFICATE_FILENAME}
; --smtp-ssl-private-key-filename ; `--smtp-ssl-private-key-filename`
smtp_ssl_private_key_filename={SMTP_SSL_PRIVATE_KEY_FILENAME} smtp_ssl_private_key_filename = {SMTP_SSL_PRIVATE_KEY_FILENAME}
;----------; ;----------;
; DB Group ; ; DB Group ;
;----------; ;----------;
; --database | -d ; `--database | -d`
db_name={DB_NAME} db_name = {DB_NAME}
; --db_user | -r ; `--db_user | -r`
db_user={DB_USER} db_user = {DB_USER}
; --db_password | -w ; `--db_password | -w`
db_password={DB_PASSWORD} db_password = {DB_PASSWORD}
; --pg_path ; `--pg_path`
pg_path={PG_PATH} pg_path = {PG_PATH}
; --db_host ; `--db_host`
db_host={DB_HOST} db_host = {DB_HOST}
; --db_port ; `--db_port`
db_port={DB_PORT} db_port = {DB_PORT}
; --db_sslmode ; `--db_sslmode`
db_sslmode={DB_SSLMODE} db_sslmode = {DB_SSLMODE}
; --db_maxconn ; `--db_maxconn`
db_maxconn={DB_MAXCONN} db_maxconn = {DB_MAXCONN}
; --db-template ; `--db-template`
db_template={DB_TEMPLATE} db_template = {DB_TEMPLATE}
;------------------------------; ;------------------------------;
; Internationalisation options ; ; Internationalisation options ;
;------------------------------; ;------------------------------;
; --load-language ; `--load-language`
load_language={LOAD_LANGUAGE} load_language = {LOAD_LANGUAGE}
; --language ; `--language`
language={LANGUAGE} language = {LANGUAGE}
; --i18n-export ; `--i18n-export`
translate_out={TRANSLATE_OUT} translate_out = {TRANSLATE_OUT}
; --i18n-import ; `--i18n-import`
translate_in={TRANSLATE_IN} translate_in = {TRANSLATE_IN}
; --i18n-overwrite ; `--i18n-overwrite`
overwrite_existing_translations={OVERWRITE_EXISTING_TRANSLATIONS} overwrite_existing_translations = {OVERWRITE_EXISTING_TRANSLATIONS}
; --modules ; `--modules `
translate_modules={TRANSLATE_MODULES} translate_modules = {TRANSLATE_MODULES}
;----------; ;----------;
; Security ; ; Security ;
;----------; ;----------;
; --no-database-list ; `--no-database-list`
list_db={LIST_DB} list_db = {LIST_DB}
;-----; ;-----;
; WEB ; ; WEB ;
;-----; ;-----;
; --db-filter ; `--db-filter`
dbfilter={DBFILTER} dbfilter = {DBFILTER}
;------------------; ;------------------;
; Advanced options ; ; Advanced options ;
;------------------; ;------------------;
; --dev ; `--dev`
dev_mode={DEV_MODE} dev_mode = {DEV_MODE}
; --shell-interface ;
shell_interface={SHELL_INTERFACE} debug_mode = {DEV_MODE}
; --stop-after-init ; `--shell-interface`
stop_after_init={STOP_AFTER_INIT} shell_interface = {SHELL_INTERFACE}
; --osv-memory-count-limit ; `--stop-after-init`
osv_memory_count_limit={OSV_MEMORY_COUNT_LIMIT} stop_after_init = {STOP_AFTER_INIT}
; --transient-age-limit (--osv-memory-age-limit deprecated) ; `--osv-memory-count-limit`
transient_age_limit={TRANSIENT_AGE_LIMIT} osv_memory_count_limit = {OSV_MEMORY_COUNT_LIMIT}
; --max-cron-threads ; `--transient-age-limit | --osv-memory-age-limit` (deprecated)
max_cron_threads={MAX_CRON_THREADS} transient_age_limit = {TRANSIENT_AGE_LIMIT}
; --unaccent ; `--max-cron-threads`
unaccent={UNACCENT} max_cron_threads = {MAX_CRON_THREADS}
; --geoip-db ; `--unaccent`
geoip_database={GEOIP_DATABASE} unaccent = {UNACCENT}
; --workers ; `--geoip-db`
workers={WORKERS} geoip_database = {GEOIP_DATABASE}
; --limit-memory-soft ; `--workers`
limit_memory_soft={LIMIT_MEMORY_SOFT} workers = {WORKERS}
; --limit-memory-hard ; `--limit-memory-soft`
limit_memory_hard={LIMIT_MEMORY_HARD} limit_memory_soft = {LIMIT_MEMORY_SOFT}
; --limit-time-cpu ; `--limit-memory-hard`
limit_time_cpu={LIMIT_TIME_CPU} limit_memory_hard = {LIMIT_MEMORY_HARD}
; --limit-time-real ; `--limit-time-cpu`
limit_time_real={LIMIT_TIME_REAL} limit_time_cpu = {LIMIT_TIME_CPU}
; --limit-time-real-cron ; `--limit-time-real`
limit_time_real_cron={LIMIT_TIME_REAL_CRON} limit_time_real = {LIMIT_TIME_REAL}
; --limit-request ; `--limit-time-real-cron`
limit_request={LIMIT_REQUEST} limit_time_real_cron = {LIMIT_TIME_REAL_CRON}
; `--limit-request`
limit_request = {LIMIT_REQUEST}
EOF EOF
) )

View File

@@ -1,5 +1,13 @@
FROM postgres:15.1 FROM postgres:15.2
RUN apt-get update && apt-get install postgresql-contrib # Update apt packages
RUN apt-get update && apt-get upgrade -y
#------------------------#
# APT Dependencies #
#------------------------#
# Unaccent extension dependencies
RUN apt-get install -y postgresql-contrib
# Copy the script to create the unaccent template
COPY ./entrypoint.sh /docker-entrypoint-initdb.d/entrypoint.sh COPY ./entrypoint.sh /docker-entrypoint-initdb.d/entrypoint.sh