Merge dc8e71a30c into 3864188c94
				
					
				
			This commit is contained in:
		
						commit
						1e3c7c156d
					
				@ -55,8 +55,8 @@ RUN npm install -g rtlcss
 | 
			
		||||
 | 
			
		||||
# Install Odoo
 | 
			
		||||
ENV ODOO_VERSION 14.0
 | 
			
		||||
ARG ODOO_RELEASE=20231106
 | 
			
		||||
ARG ODOO_SHA=a50db3bf2d55c64bd51b6b56a2e3d0dbafc44894
 | 
			
		||||
ARG ODOO_RELEASE=20231110
 | 
			
		||||
ARG ODOO_SHA=97b1522e121e9f6defe5ad3c297eb94d976d77f1
 | 
			
		||||
RUN curl -o odoo.deb -sSL http://nightly.odoo.com/${ODOO_VERSION}/nightly/deb/odoo_${ODOO_VERSION}.${ODOO_RELEASE}_all.deb \
 | 
			
		||||
    && echo "${ODOO_SHA} odoo.deb" | sha1sum -c - \
 | 
			
		||||
    && apt-get update \
 | 
			
		||||
 | 
			
		||||
@ -55,8 +55,8 @@ RUN npm install -g rtlcss
 | 
			
		||||
 | 
			
		||||
# Install Odoo
 | 
			
		||||
ENV ODOO_VERSION 15.0
 | 
			
		||||
ARG ODOO_RELEASE=20231106
 | 
			
		||||
ARG ODOO_SHA=5d0022d3a282f11c1b92c727ce93e69e732febfe
 | 
			
		||||
ARG ODOO_RELEASE=20231110
 | 
			
		||||
ARG ODOO_SHA=98d199d65aefe3108d63e5f47e5ca3c4e985d7e1
 | 
			
		||||
RUN curl -o odoo.deb -sSL http://nightly.odoo.com/${ODOO_VERSION}/nightly/deb/odoo_${ODOO_VERSION}.${ODOO_RELEASE}_all.deb \
 | 
			
		||||
    && echo "${ODOO_SHA} odoo.deb" | sha1sum -c - \
 | 
			
		||||
    && apt-get update \
 | 
			
		||||
 | 
			
		||||
@ -69,8 +69,8 @@ RUN npm install -g rtlcss
 | 
			
		||||
 | 
			
		||||
# Install Odoo
 | 
			
		||||
ENV ODOO_VERSION 16.0
 | 
			
		||||
ARG ODOO_RELEASE=20231106
 | 
			
		||||
ARG ODOO_SHA=ef0fa4f34bbb1af69733a8df1a19d2756de7916b
 | 
			
		||||
ARG ODOO_RELEASE=20231110
 | 
			
		||||
ARG ODOO_SHA=ae2f8f79159fa2c7b7a78427b6302b382812e6ca
 | 
			
		||||
RUN curl -o odoo.deb -sSL http://nightly.odoo.com/${ODOO_VERSION}/nightly/deb/odoo_${ODOO_VERSION}.${ODOO_RELEASE}_all.deb \
 | 
			
		||||
    && echo "${ODOO_SHA} odoo.deb" | sha1sum -c - \
 | 
			
		||||
    && apt-get update \
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										102
									
								
								17.0/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								17.0/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,102 @@
 | 
			
		||||
FROM debian:bookworm-slim
 | 
			
		||||
MAINTAINER Odoo S.A. <info@odoo.com>
 | 
			
		||||
 | 
			
		||||
SHELL ["/bin/bash", "-xo", "pipefail", "-c"]
 | 
			
		||||
 | 
			
		||||
# Generate locale C.UTF-8 for postgres and general locale data
 | 
			
		||||
ENV LANG C.UTF-8
 | 
			
		||||
 | 
			
		||||
# Retrieve the target architecture to install the correct wkhtmltopdf package
 | 
			
		||||
ARG TARGETARCH
 | 
			
		||||
 | 
			
		||||
# Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf
 | 
			
		||||
RUN apt-get update && \
 | 
			
		||||
    apt-get install -y --no-install-recommends \
 | 
			
		||||
        ca-certificates \
 | 
			
		||||
        curl \
 | 
			
		||||
        dirmngr \
 | 
			
		||||
        fonts-noto-cjk \
 | 
			
		||||
        gnupg \
 | 
			
		||||
        libssl-dev \
 | 
			
		||||
        node-less \
 | 
			
		||||
        npm \
 | 
			
		||||
        python3-magic \
 | 
			
		||||
        python3-num2words \
 | 
			
		||||
        python3-odf \
 | 
			
		||||
        python3-pdfminer \
 | 
			
		||||
        python3-pip \
 | 
			
		||||
        python3-phonenumbers \
 | 
			
		||||
        python3-pyldap \
 | 
			
		||||
        python3-qrcode \
 | 
			
		||||
        python3-renderpm \
 | 
			
		||||
        python3-setuptools \
 | 
			
		||||
        python3-slugify \
 | 
			
		||||
        python3-vobject \
 | 
			
		||||
        python3-watchdog \
 | 
			
		||||
        python3-xlrd \
 | 
			
		||||
        python3-xlwt \
 | 
			
		||||
        xz-utils && \
 | 
			
		||||
    if [ -z "${TARGETARCH}" ]; then \
 | 
			
		||||
        TARGETARCH="$(dpkg --print-architecture)"; \
 | 
			
		||||
    fi; \
 | 
			
		||||
    WKHTMLTOPDF_ARCH=${TARGETARCH} && \
 | 
			
		||||
    case ${TARGETARCH} in \
 | 
			
		||||
    "amd64") WKHTMLTOPDF_ARCH=amd64 && WKHTMLTOPDF_SHA=e9f95436298c77cc9406bd4bbd242f4771d0a4b2  ;; \
 | 
			
		||||
    "arm64")  WKHTMLTOPDF_SHA=77bc06be5e543510140e6728e11b7c22504080d4  ;; \
 | 
			
		||||
    "ppc64le" | "ppc64el") WKHTMLTOPDF_ARCH=ppc64el && WKHTMLTOPDF_SHA=d61c2497fa6edb4650548b8864f53c7de161347d  ;; \
 | 
			
		||||
    esac \
 | 
			
		||||
    && curl -o wkhtmltox.deb -sSL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_${WKHTMLTOPDF_ARCH}.deb \
 | 
			
		||||
    && echo ${WKHTMLTOPDF_SHA} wkhtmltox.deb | sha1sum -c - \
 | 
			
		||||
    && apt-get install -y --no-install-recommends ./wkhtmltox.deb \
 | 
			
		||||
    && rm -rf /var/lib/apt/lists/* wkhtmltox.deb
 | 
			
		||||
 | 
			
		||||
# install latest postgresql-client
 | 
			
		||||
RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main' > /etc/apt/sources.list.d/pgdg.list \
 | 
			
		||||
    && GNUPGHOME="$(mktemp -d)" \
 | 
			
		||||
    && export GNUPGHOME \
 | 
			
		||||
    && repokey='B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8' \
 | 
			
		||||
    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${repokey}" \
 | 
			
		||||
    && gpg --batch --armor --export "${repokey}" > /etc/apt/trusted.gpg.d/pgdg.gpg.asc \
 | 
			
		||||
    && gpgconf --kill all \
 | 
			
		||||
    && rm -rf "$GNUPGHOME" \
 | 
			
		||||
    && apt-get update  \
 | 
			
		||||
    && apt-get install --no-install-recommends -y postgresql-client \
 | 
			
		||||
    && rm -f /etc/apt/sources.list.d/pgdg.list \
 | 
			
		||||
    && rm -rf /var/lib/apt/lists/*
 | 
			
		||||
 | 
			
		||||
# Install rtlcss (on Debian buster)
 | 
			
		||||
RUN npm install -g rtlcss
 | 
			
		||||
 | 
			
		||||
# Install Odoo
 | 
			
		||||
ENV ODOO_VERSION 17.0
 | 
			
		||||
ARG ODOO_RELEASE=20231110
 | 
			
		||||
ARG ODOO_SHA=10828497e20b7bb50ec129a07ee26cf5ddaec51f
 | 
			
		||||
RUN curl -o odoo.deb -sSL http://nightly.odoo.com/${ODOO_VERSION}/nightly/deb/odoo_${ODOO_VERSION}.${ODOO_RELEASE}_all.deb \
 | 
			
		||||
    && echo "${ODOO_SHA} odoo.deb" | sha1sum -c - \
 | 
			
		||||
    && apt-get update \
 | 
			
		||||
    && apt-get -y install --no-install-recommends ./odoo.deb \
 | 
			
		||||
    && rm -rf /var/lib/apt/lists/* odoo.deb
 | 
			
		||||
 | 
			
		||||
# Copy entrypoint script and Odoo configuration file
 | 
			
		||||
COPY ./entrypoint.sh /
 | 
			
		||||
COPY ./odoo.conf /etc/odoo/
 | 
			
		||||
 | 
			
		||||
# Set permissions and Mount /var/lib/odoo to allow restoring filestore and /mnt/extra-addons for users addons
 | 
			
		||||
RUN chown odoo /etc/odoo/odoo.conf \
 | 
			
		||||
    && mkdir -p /mnt/extra-addons \
 | 
			
		||||
    && chown -R odoo /mnt/extra-addons
 | 
			
		||||
VOLUME ["/var/lib/odoo", "/mnt/extra-addons"]
 | 
			
		||||
 | 
			
		||||
# Expose Odoo services
 | 
			
		||||
EXPOSE 8069 8071 8072
 | 
			
		||||
 | 
			
		||||
# Set the default config file
 | 
			
		||||
ENV ODOO_RC /etc/odoo/odoo.conf
 | 
			
		||||
 | 
			
		||||
COPY wait-for-psql.py /usr/local/bin/wait-for-psql.py
 | 
			
		||||
 | 
			
		||||
# Set default user when running the container
 | 
			
		||||
USER odoo
 | 
			
		||||
 | 
			
		||||
ENTRYPOINT ["/entrypoint.sh"]
 | 
			
		||||
CMD ["odoo"]
 | 
			
		||||
							
								
								
									
										49
									
								
								17.0/entrypoint.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								17.0/entrypoint.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,49 @@
 | 
			
		||||
#!/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[@]}"
 | 
			
		||||
        ;;
 | 
			
		||||
    *)
 | 
			
		||||
        exec "$@"
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
exit 1
 | 
			
		||||
							
								
								
									
										37
									
								
								17.0/odoo.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								17.0/odoo.conf
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,37 @@
 | 
			
		||||
[options]
 | 
			
		||||
addons_path = /mnt/extra-addons
 | 
			
		||||
data_dir = /var/lib/odoo
 | 
			
		||||
; admin_passwd = admin
 | 
			
		||||
; csv_internal_sep = ,
 | 
			
		||||
; db_maxconn = 64
 | 
			
		||||
; db_name = False
 | 
			
		||||
; db_template = template1
 | 
			
		||||
; dbfilter = .*
 | 
			
		||||
; debug_mode = False
 | 
			
		||||
; email_from = False
 | 
			
		||||
; limit_memory_hard = 2684354560
 | 
			
		||||
; limit_memory_soft = 2147483648
 | 
			
		||||
; limit_request = 8192
 | 
			
		||||
; limit_time_cpu = 60
 | 
			
		||||
; limit_time_real = 120
 | 
			
		||||
; list_db = True
 | 
			
		||||
; log_db = False
 | 
			
		||||
; log_handler = [':INFO']
 | 
			
		||||
; log_level = info
 | 
			
		||||
; logfile = None
 | 
			
		||||
; longpolling_port = 8072
 | 
			
		||||
; max_cron_threads = 2
 | 
			
		||||
; osv_memory_age_limit = 1.0
 | 
			
		||||
; osv_memory_count_limit = False
 | 
			
		||||
; smtp_password = False
 | 
			
		||||
; smtp_port = 25
 | 
			
		||||
; smtp_server = localhost
 | 
			
		||||
; smtp_ssl = False
 | 
			
		||||
; smtp_user = False
 | 
			
		||||
; workers = 0
 | 
			
		||||
; xmlrpc = True
 | 
			
		||||
; xmlrpc_interface = 
 | 
			
		||||
; xmlrpc_port = 8069
 | 
			
		||||
; xmlrpcs = True
 | 
			
		||||
; xmlrpcs_interface = 
 | 
			
		||||
; xmlrpcs_port = 8071
 | 
			
		||||
							
								
								
									
										32
									
								
								17.0/wait-for-psql.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								17.0/wait-for-psql.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
			
		||||
#!/usr/bin/env python3
 | 
			
		||||
import argparse
 | 
			
		||||
import psycopg2
 | 
			
		||||
import sys
 | 
			
		||||
import time
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    arg_parser = argparse.ArgumentParser()
 | 
			
		||||
    arg_parser.add_argument('--db_host', required=True)
 | 
			
		||||
    arg_parser.add_argument('--db_port', required=True)
 | 
			
		||||
    arg_parser.add_argument('--db_user', required=True)
 | 
			
		||||
    arg_parser.add_argument('--db_password', required=True)
 | 
			
		||||
    arg_parser.add_argument('--timeout', type=int, default=5)
 | 
			
		||||
 | 
			
		||||
    args = arg_parser.parse_args()
 | 
			
		||||
 | 
			
		||||
    start_time = time.time()
 | 
			
		||||
    while (time.time() - start_time) < args.timeout:
 | 
			
		||||
        try:
 | 
			
		||||
            conn = psycopg2.connect(user=args.db_user, host=args.db_host, port=args.db_port, password=args.db_password, dbname='postgres')
 | 
			
		||||
            error = ''
 | 
			
		||||
            break
 | 
			
		||||
        except psycopg2.OperationalError as e:
 | 
			
		||||
            error = e
 | 
			
		||||
        else:
 | 
			
		||||
            conn.close()
 | 
			
		||||
        time.sleep(1)
 | 
			
		||||
 | 
			
		||||
    if error:
 | 
			
		||||
        print("Database connection failure: %s" % error, file=sys.stderr)
 | 
			
		||||
        sys.exit(1)
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user