Add files via upload
This commit is contained in:
parent
e81f08ce91
commit
dc6b04162b
20 changed files with 726 additions and 0 deletions
104
V17/Dockerfile
Normal file
104
V17/Dockerfile
Normal file
|
|
@ -0,0 +1,104 @@
|
||||||
|
FROM ubuntu:jammy
|
||||||
|
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 en_US.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 && \
|
||||||
|
DEBIAN_FRONTEND=noninteractive \
|
||||||
|
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=967390a759707337b46d1c02452e2bb6b2dc6d59 ;; \
|
||||||
|
"arm64") WKHTMLTOPDF_SHA=90f6e69896d51ef77339d3f3a20f8582bdf496cc ;; \
|
||||||
|
"ppc64le" | "ppc64el") WKHTMLTOPDF_ARCH=ppc64el && WKHTMLTOPDF_SHA=5312d7d34a25b321282929df82e3574319aed25c ;; \
|
||||||
|
esac \
|
||||||
|
&& curl -o wkhtmltox.deb -sSL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_${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/ jammy-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=20250725
|
||||||
|
ARG ODOO_SHA=776c9e48afff1348a0410628a17d0552cb4599a3
|
||||||
|
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"]
|
||||||
9
V17/Dockerfile.postgres
Normal file
9
V17/Dockerfile.postgres
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
# Utiliser l'image officielle PostgreSQL 15
|
||||||
|
FROM postgres:15
|
||||||
|
|
||||||
|
# Changer le port d'écoute dans la configuration PostgreSQL
|
||||||
|
RUN sed -i 's/^#port = 5432/port = 5444/' /usr/share/postgresql/postgresql.conf.sample
|
||||||
|
|
||||||
|
# Copier la configuration dans le répertoire de configuration PostgreSQL
|
||||||
|
CMD ["postgres", "-c", "config_file=/usr/share/postgresql/postgresql.conf.sample"]
|
||||||
|
|
||||||
1
V17/buildimage.odoo.txt
Normal file
1
V17/buildimage.odoo.txt
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
docker build -t odoo17-20250725-image .
|
||||||
1
V17/buildimage.postgres.txt
Normal file
1
V17/buildimage.postgres.txt
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
docker build -t postgres15-5444-image .
|
||||||
37
V17/docker-compose.yml
Normal file
37
V17/docker-compose.yml
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
odoo-mylucdatabase: # Configuration du container Odoo
|
||||||
|
image: odoo17-20250725-image:latest # Nom de notre image personnalisée
|
||||||
|
container_name: odoo-20250207-mylucdatabase
|
||||||
|
restart: unless-stopped
|
||||||
|
user: root
|
||||||
|
depends_on:
|
||||||
|
- postgres # L'exécution de notre service dépend de celui de postgres
|
||||||
|
ports:
|
||||||
|
- "8569:8069" # Le port 8069 est exposé pour accéder à l'application Odoo
|
||||||
|
networks:
|
||||||
|
- moustyLocalNetwork
|
||||||
|
volumes:
|
||||||
|
- ./:/etc/odoo:z
|
||||||
|
- ./odoo-filestore:/var/lib/odoo/filestore:z
|
||||||
|
- ./custom:/mnt/extra-addons:z
|
||||||
|
- ./logs:/var/log/odoo:z
|
||||||
|
|
||||||
|
postgres: # Configuration de notre service PostgreSQL
|
||||||
|
image: postgres15-5444-image:latest # Image postgres 15 de Docker hub
|
||||||
|
container_name: postgres-20250725-mylucdatabase
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- moustyLocalNetwork
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=odoo
|
||||||
|
- POSTGRES_PASSWORD=odoo
|
||||||
|
- POSTGRES_DB=postgres
|
||||||
|
volumes:
|
||||||
|
- ./postgresql:/var/lib/postgresql/data:z
|
||||||
|
|
||||||
|
networks:
|
||||||
|
moustyLocalNetwork:
|
||||||
|
external: true
|
||||||
|
|
||||||
49
V17/entrypoint.sh
Normal file
49
V17/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:=5434}}
|
||||||
|
: ${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
|
||||||
16
V17/odoo.conf
Normal file
16
V17/odoo.conf
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
[options]
|
||||||
|
addons_path = /mnt/extra-addons
|
||||||
|
data_dir = /var/lib/odoo
|
||||||
|
limit_time_real = 1200
|
||||||
|
log_handler = [':INFO']
|
||||||
|
log_level = info
|
||||||
|
logfile = /var/log/odoo/odoo.log
|
||||||
|
proxy_mode = True
|
||||||
|
admin_passwd = Douthinkimtupid
|
||||||
|
db_host = postgres-20250725-mylucdatabase
|
||||||
|
db_port = 5444
|
||||||
|
debug_mode = True
|
||||||
|
longpolling_port = 8072
|
||||||
|
xmlrpc_port = 8069
|
||||||
|
xmlrpcs_port = 8071
|
||||||
|
|
||||||
32
V17/wait-for-psql.py
Normal file
32
V17/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)
|
||||||
112
V18-MIG/Dockerfile
Normal file
112
V18-MIG/Dockerfile
Normal file
|
|
@ -0,0 +1,112 @@
|
||||||
|
FROM ubuntu:noble
|
||||||
|
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 en_US.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 && \
|
||||||
|
DEBIAN_FRONTEND=noninteractive \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
ca-certificates \
|
||||||
|
curl \
|
||||||
|
vim \
|
||||||
|
git \
|
||||||
|
dirmngr \
|
||||||
|
fonts-noto-cjk \
|
||||||
|
gnupg \
|
||||||
|
libssl-dev \
|
||||||
|
node-less \
|
||||||
|
npm \
|
||||||
|
unzip \
|
||||||
|
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=967390a759707337b46d1c02452e2bb6b2dc6d59 ;; \
|
||||||
|
"arm64") WKHTMLTOPDF_SHA=90f6e69896d51ef77339d3f3a20f8582bdf496cc ;; \
|
||||||
|
"ppc64le" | "ppc64el") WKHTMLTOPDF_ARCH=ppc64el && WKHTMLTOPDF_SHA=5312d7d34a25b321282929df82e3574319aed25c ;; \
|
||||||
|
esac \
|
||||||
|
&& curl -o wkhtmltox.deb -sSL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_${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/ noble-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 18.0
|
||||||
|
ARG ODOO_RELEASE=20250725
|
||||||
|
ARG ODOO_SHA=52215335b04ab9a0991ad1af37be6e07a5b3b276
|
||||||
|
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"]
|
||||||
|
|
||||||
|
RUN mkdir -p /var/lib/odoo/OpenUpgrade
|
||||||
|
RUN pip install --break-system-packages git+https://github.com/OCA/openupgradelib.git@master#egg=openupgradelib
|
||||||
|
|
||||||
|
VOLUME ["/var/lib/odoo", "/mnt/extra-addons", "/var/lib/odoo/OpenUpgrade"]
|
||||||
|
|
||||||
|
# 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"]
|
||||||
1
V18-MIG/build.odoo.image.txt
Normal file
1
V18-MIG/build.odoo.image.txt
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
docker build -t odoo18-augmente-20250725-image .
|
||||||
25
V18-MIG/docker-compose.yml
Normal file
25
V18-MIG/docker-compose.yml
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
odoo-18-AugmenteForUpgrade: #Configuration du container Odoo
|
||||||
|
image: odoo18-augmente-20250725-image:latest # Nom de notre image personnalisée
|
||||||
|
restart: "no"
|
||||||
|
container_name: odoo-18-AugmenteForUpgrade
|
||||||
|
user: root
|
||||||
|
ports:
|
||||||
|
- "8569:8069" # Le port 8069 est exposé pour accéder à l'application Odoo
|
||||||
|
- "8571:8071" # Le port 8071 est exposé pour accéder à l'application Odoo
|
||||||
|
- "8572:8072" # Le port 8072 est exposé pour accéder à l'application Odoo
|
||||||
|
networks:
|
||||||
|
- moustyLocalNetwork # éseau dans lequel notre service communiquera
|
||||||
|
volumes:
|
||||||
|
- ./:/etc/odoo:z
|
||||||
|
- ./odoo-filestore:/var/lib/odoo/filestore:z
|
||||||
|
- ./custom:/mnt/extra-addons:z
|
||||||
|
- ./OpenUpgrade:/var/lib/odoo/OpenUpgrade
|
||||||
|
- ./logs:/var/log/odoo:z
|
||||||
|
|
||||||
|
networks:
|
||||||
|
moustyLocalNetwork:
|
||||||
|
external: true
|
||||||
|
|
||||||
54
V18-MIG/entrypoint.sh
Normal file
54
V18-MIG/entrypoint.sh
Normal file
|
|
@ -0,0 +1,54 @@
|
||||||
|
#!/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 \
|
||||||
|
--upgrade-path=/var/lib/odoo/OpenUpgrade/openupgrade_scripts/scripts \
|
||||||
|
--update=all \
|
||||||
|
--stop-after-init \
|
||||||
|
--load=base,web,openupgrade_framework \
|
||||||
|
"$@" "${DB_ARGS[@]}"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
-*)
|
||||||
|
wait-for-psql.py ${DB_ARGS[@]} --timeout=30
|
||||||
|
exec odoo "$@" "${DB_ARGS[@]}"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exec "$@"
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 1
|
||||||
25
V18-MIG/odoo.conf
Normal file
25
V18-MIG/odoo.conf
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
[options]
|
||||||
|
addons_path = /mnt/extra-addons,/var/lib/odoo/OpenUpgrade
|
||||||
|
data_dir = /var/lib/odoo
|
||||||
|
limit_time_real = 1200
|
||||||
|
log_handler = [':INFO']
|
||||||
|
log_level = info
|
||||||
|
logfile = /var/log/odoo/odoo.log
|
||||||
|
proxy_mode = True
|
||||||
|
db_host = postgres-20250725-mylucdatabase
|
||||||
|
db_port = 5444
|
||||||
|
db_name = mylucdatabase
|
||||||
|
db_user = odoo
|
||||||
|
db_password = odoo
|
||||||
|
debug_mode = True
|
||||||
|
longpolling_port = False
|
||||||
|
gevent_port = 8072
|
||||||
|
xmlrpc_port = 8069
|
||||||
|
xmlrpcs_port = 8071
|
||||||
|
admin_passwd = Douthinkimtupid
|
||||||
|
upgrade_path = /var/lib/odoo/OpenUpgrade/openupgrade_scripts/scripts
|
||||||
|
limit_memory_hard = 0
|
||||||
|
limit_memory_soft = 2147483648
|
||||||
|
limit_request = 8192
|
||||||
|
limit_time_cpu = 60
|
||||||
|
limit_time_real_cron = -1
|
||||||
32
V18-MIG/wait-for-psql.py
Normal file
32
V18-MIG/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)
|
||||||
104
V18/Dockerfile
Normal file
104
V18/Dockerfile
Normal file
|
|
@ -0,0 +1,104 @@
|
||||||
|
FROM ubuntu:noble
|
||||||
|
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 en_US.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 && \
|
||||||
|
DEBIAN_FRONTEND=noninteractive \
|
||||||
|
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=967390a759707337b46d1c02452e2bb6b2dc6d59 ;; \
|
||||||
|
"arm64") WKHTMLTOPDF_SHA=90f6e69896d51ef77339d3f3a20f8582bdf496cc ;; \
|
||||||
|
"ppc64le" | "ppc64el") WKHTMLTOPDF_ARCH=ppc64el && WKHTMLTOPDF_SHA=5312d7d34a25b321282929df82e3574319aed25c ;; \
|
||||||
|
esac \
|
||||||
|
&& curl -o wkhtmltox.deb -sSL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_${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/ noble-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 18.0
|
||||||
|
ARG ODOO_RELEASE=20250725
|
||||||
|
ARG ODOO_SHA=52215335b04ab9a0991ad1af37be6e07a5b3b276
|
||||||
|
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"]
|
||||||
1
V18/build.odoo.image.txt
Normal file
1
V18/build.odoo.image.txt
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
docker build -t odoo18-20250725-image .
|
||||||
24
V18/docker-compose.yml
Normal file
24
V18/docker-compose.yml
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
odoo-18-NORMAL: #Configuration du container Odoo
|
||||||
|
image: odoo18-20250725-image:latest # Nom de notre image personnalisée
|
||||||
|
restart: unless-stopped
|
||||||
|
container_name: odoo-18-mylucdatabase-migree
|
||||||
|
user: root
|
||||||
|
ports:
|
||||||
|
- "8569:8069" # Le port 8069 est exposé pour accéder à l'application Odoo
|
||||||
|
- "8571:8071" # Le port 8071 est exposé pour accéder à l'application Odoo
|
||||||
|
- "8572:8072" # Le port 8072 est exposé pour accéder à l'application Odoo
|
||||||
|
networks:
|
||||||
|
- moustyLocalNetwork # éseau dans lequel notre service communiquera
|
||||||
|
volumes:
|
||||||
|
- ./:/etc/odoo:z
|
||||||
|
- ./odoo-filestore:/var/lib/odoo/filestore:z
|
||||||
|
- ./custom:/mnt/extra-addons:z
|
||||||
|
- ./logs:/var/log/odoo:z
|
||||||
|
|
||||||
|
networks:
|
||||||
|
moustyLocalNetwork:
|
||||||
|
external: true
|
||||||
|
|
||||||
49
V18/entrypoint.sh
Normal file
49
V18/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
|
||||||
18
V18/odoo.conf
Normal file
18
V18/odoo.conf
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
[options]
|
||||||
|
addons_path = /mnt/extra-addons
|
||||||
|
data_dir = /var/lib/odoo
|
||||||
|
limit_time_real = 1200
|
||||||
|
log_handler = [':INFO']
|
||||||
|
log_level = info
|
||||||
|
logfile = /var/log/odoo/odoo.log
|
||||||
|
proxy_mode = True
|
||||||
|
db_host = postgres-20250725-mylucdatabase
|
||||||
|
db_port = 5444
|
||||||
|
db_user = odoo
|
||||||
|
db_password = odoo
|
||||||
|
debug_mode = True
|
||||||
|
longpolling_port = False
|
||||||
|
gevent_port = 8072
|
||||||
|
xmlrpc_port = 8069
|
||||||
|
xmlrpcs_port = 8071
|
||||||
|
admin_passwd = Douthinkimtupid
|
||||||
32
V18/wait-for-psql.py
Normal file
32
V18/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 a new issue