mirror of
https://github.com/bitnami/containers.git
synced 2026-10-17 12:30:04 +02:00
[bitnami/odoo] Release 19.0.20260501-debian-12-r6 (#94008)
Signed-off-by: Bitnami Bot <bitnami.bot@broadcom.com>
This commit is contained in:
@@ -7,7 +7,7 @@ ARG DOWNLOADS_URL="downloads.bitnami.com/files/stacksmith"
|
||||
ARG TARGETARCH
|
||||
|
||||
LABEL org.opencontainers.image.base.name="docker.io/bitnami/minideb:bookworm" \
|
||||
org.opencontainers.image.created="2026-05-23T10:04:59Z" \
|
||||
org.opencontainers.image.created="2026-05-26T16:26:43Z" \
|
||||
org.opencontainers.image.description="Application packaged by Broadcom, Inc." \
|
||||
org.opencontainers.image.documentation="https://github.com/bitnami/containers/tree/main/bitnami/odoo/README.md" \
|
||||
org.opencontainers.image.source="https://github.com/bitnami/containers/tree/main/bitnami/odoo" \
|
||||
@@ -36,12 +36,12 @@ RUN --mount=type=secret,id=downloads_url,env=SECRET_DOWNLOADS_URL \
|
||||
for COMPONENT in "${COMPONENTS[@]}"; do \
|
||||
if [ ! -f "${COMPONENT}.tar.gz" ]; then \
|
||||
curl -SsLf "https://${DOWNLOADS_URL}/${COMPONENT}.tar.gz" -O ; \
|
||||
curl -SsLf "https://${DOWNLOADS_URL}/${COMPONENT}.tar.gz.sha256" -O ; \
|
||||
fi ; \
|
||||
sha256sum -c "${COMPONENT}.tar.gz.sha256" ; \
|
||||
sha256sum -c "/opt/bitnami/checksums/${COMPONENT}.tar.gz.sha256" ; \
|
||||
tar -zxf "${COMPONENT}.tar.gz" -C /opt/bitnami --strip-components=2 --no-same-owner ; \
|
||||
rm -rf "${COMPONENT}".tar.gz{,.sha256} ; \
|
||||
done
|
||||
rm -rf "${COMPONENT}".tar.gz ; \
|
||||
done ; \
|
||||
rm -rf /opt/bitnami/checksums ;
|
||||
RUN apt-get update && apt-get upgrade -y && \
|
||||
apt-get clean && rm -rf /var/lib/apt/lists /var/cache/apt/archives
|
||||
RUN find / -perm /6000 -type f -exec chmod a-s {} \; || true
|
||||
@@ -58,7 +58,7 @@ COPY rootfs /
|
||||
RUN /opt/bitnami/scripts/odoo/postunpack.sh
|
||||
ENV APP_VERSION="19.0.20260501" \
|
||||
BITNAMI_APP_NAME="odoo" \
|
||||
IMAGE_REVISION="5" \
|
||||
IMAGE_REVISION="6" \
|
||||
LD_LIBRARY_PATH="/opt/bitnami/postgresql/lib:$LD_LIBRARY_PATH" \
|
||||
PATH="/opt/bitnami/python/bin:/opt/bitnami/common/bin:/opt/bitnami/postgresql/bin:/opt/bitnami/node/bin:/opt/bitnami/odoo/bin:$PATH"
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ services:
|
||||
environment:
|
||||
# ALLOW_EMPTY_PASSWORD is recommended only for development.
|
||||
- ALLOW_EMPTY_PASSWORD=yes
|
||||
- ODOO_PASSWORD=bitnami
|
||||
- ODOO_DATABASE_HOST=postgresql
|
||||
- ODOO_DATABASE_PORT_NUMBER=5432
|
||||
- ODOO_DATABASE_USER=bn_odoo
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
8418dd355a61720073361f5aa88610116b0b68d450d482ed329be293508a0165 node-22.22.3-0-linux-amd64-debian-12.tar.gz
|
||||
+1
@@ -0,0 +1 @@
|
||||
c1831f91a97dab2b38d086e3452bcbd4f0cb821a78ede71d166ca5c878cb4fa5 node-22.22.3-0-linux-arm64-debian-12.tar.gz
|
||||
+1
@@ -0,0 +1 @@
|
||||
c38da65df84335ab9555e8ff994b3f6bc15b4c71766c670eb14b3cf56003355a odoo-19.0.20260501-0-linux-amd64-debian-12.tar.gz
|
||||
+1
@@ -0,0 +1 @@
|
||||
860febcfd65d5143dfdc642d54fd292114cc15665d432d775ca76a7fcaafc3dd odoo-19.0.20260501-0-linux-arm64-debian-12.tar.gz
|
||||
+1
@@ -0,0 +1 @@
|
||||
94f47dda1a262952f801352ae6ba0c640a279384451c50d5bdfd354af008d76e postgresql-client-18.4.0-0-linux-amd64-debian-12.tar.gz
|
||||
+1
@@ -0,0 +1 @@
|
||||
b54111e298a44eacf4e41b1651c196d8aecd16f6b75b89c4a85c5e7f1a31bf26 postgresql-client-18.4.0-0-linux-arm64-debian-12.tar.gz
|
||||
+1
@@ -0,0 +1 @@
|
||||
a13e9f6ab18a719682fd94b0bdd131a771835c8cb707e2451c472a8b6927f3f7 python-3.12.13-11-linux-amd64-debian-12.tar.gz
|
||||
+1
@@ -0,0 +1 @@
|
||||
f79c0e2b0c9179091f9b06c650c757680b91a9f655538e85968cce732f150ab6 python-3.12.13-11-linux-arm64-debian-12.tar.gz
|
||||
+1
@@ -0,0 +1 @@
|
||||
374910c7361f00d393eca79a749d29f389b4522057902c7655f0a3a5ae3d1b32 render-template-1.0.9-165-linux-amd64-debian-12.tar.gz
|
||||
+1
@@ -0,0 +1 @@
|
||||
d492024d2d8261cfb147e7b508d341b91349fd41cf41aecd0706046be8cb108b render-template-1.0.9-165-linux-arm64-debian-12.tar.gz
|
||||
@@ -139,3 +139,40 @@ wait_for_log_entry() {
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
########################
|
||||
# Creates a secure temporary file containing the provided secret
|
||||
# Arguments:
|
||||
# $1 - secret to write to the temporary file
|
||||
# Returns:
|
||||
# String
|
||||
#########################
|
||||
credential_to_temp_file() {
|
||||
local secret="$1"
|
||||
local tmp_file
|
||||
|
||||
# Use mktemp with a specific prefix for easier debugging if something lingers
|
||||
if ! tmp_file=$(mktemp "${TMPDIR:-/tmp}/at.cred.XXXXXXXX"); then
|
||||
echo "Error: Failed to create temp file" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Restrict permissions before writing the secret
|
||||
chmod 0600 "$tmp_file"
|
||||
# Write secret and ensure it's flushed to disk
|
||||
printf "%s" "$secret" > "$tmp_file"
|
||||
# Output the filename so the caller can capture it
|
||||
echo "$tmp_file"
|
||||
}
|
||||
|
||||
########################
|
||||
# Cleans up temporary files created by credential_to_temp_file
|
||||
# Arguments:
|
||||
# None
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
cleanup_credentials() {
|
||||
debug "Cleaning up temporary files containing credentials"
|
||||
rm -rf "${TMPDIR:-/tmp}"/at.cred.*
|
||||
}
|
||||
|
||||
@@ -80,12 +80,11 @@ odoo_validate() {
|
||||
[[ -n "${WITHOUT_DEMO:-}" ]] && warn "The WITHOUT_DEMO environment variable has been deprecated in favor of ODOO_LOAD_DEMO_DATA=yes. Support for it may be removed in a future release."
|
||||
|
||||
# Validate credentials
|
||||
check_empty_value "ODOO_PASSWORD"
|
||||
if is_boolean_yes "${ALLOW_EMPTY_PASSWORD:-}"; then
|
||||
warn "You set the environment variable ALLOW_EMPTY_PASSWORD=${ALLOW_EMPTY_PASSWORD:-}. For safety reasons, do not use this flag in a production environment."
|
||||
else
|
||||
for empty_env_var in "ODOO_DATABASE_PASSWORD" "ODOO_PASSWORD"; do
|
||||
is_empty_value "${!empty_env_var}" && print_validation_error "The ${empty_env_var} environment variable is empty or not set. Set the environment variable ALLOW_EMPTY_PASSWORD=yes to allow a blank password. This is only recommended for development environments."
|
||||
done
|
||||
is_empty_value "${ODOO_DATABASE_PASSWORD}" && print_validation_error "The ODOO_DATABASE_PASSWORD environment variable is empty or not set. Set the environment variable ALLOW_EMPTY_PASSWORD=yes to allow a blank password. This is only recommended for development environments."
|
||||
fi
|
||||
|
||||
# Validate SMTP credentials
|
||||
@@ -93,8 +92,8 @@ odoo_validate() {
|
||||
for empty_env_var in "ODOO_SMTP_USER" "ODOO_SMTP_PASSWORD"; do
|
||||
is_empty_value "${!empty_env_var}" && warn "The ${empty_env_var} environment variable is empty or not set."
|
||||
done
|
||||
is_empty_value "$ODOO_SMTP_PORT_NUMBER" && print_validation_error "The ODOO_SMTP_PORT_NUMBER environment variable is empty or not set."
|
||||
! is_empty_value "$ODOO_SMTP_PORT_NUMBER" && check_valid_port "ODOO_SMTP_PORT_NUMBER"
|
||||
check_empty_value "ODOO_SMTP_PORT_NUMBER"
|
||||
check_valid_port "ODOO_SMTP_PORT_NUMBER"
|
||||
! is_empty_value "$ODOO_SMTP_PROTOCOL" && check_multi_value "ODOO_SMTP_PROTOCOL" "ssl tls"
|
||||
fi
|
||||
|
||||
@@ -166,7 +165,17 @@ odoo_initialize() {
|
||||
odoo_execute "${init_args[@]}"
|
||||
|
||||
info "Updating admin user credentials"
|
||||
postgresql_remote_execute "${db_execute_args[@]}" <<< "UPDATE res_users SET login = '${ODOO_EMAIL}', password = '${ODOO_PASSWORD}' WHERE login = 'admin'"
|
||||
local _hashed_pw
|
||||
_hashed_pw="$(python3 - "${ODOO_PASSWORD}" <<'PYEOF'
|
||||
import sys, os, hashlib, base64
|
||||
def b64s(data):
|
||||
return base64.b64encode(data).rstrip(b'=').replace(b'+', b'.').decode('ascii')
|
||||
rounds, salt = 25000, os.urandom(16)
|
||||
dk = hashlib.pbkdf2_hmac('sha512', sys.argv[1].encode('utf-8'), salt, rounds, dklen=64)
|
||||
sys.stdout.write('$pbkdf2-sha512${}${}${}'.format(rounds, b64s(salt), b64s(dk)))
|
||||
PYEOF
|
||||
)"
|
||||
postgresql_remote_execute "${db_execute_args[@]}" <<< "UPDATE res_users SET login = '${ODOO_EMAIL}', password = '${_hashed_pw}' WHERE login = 'admin'"
|
||||
else
|
||||
info "An already initialized Odoo database was provided, configuration will be skipped"
|
||||
# Odoo stores a cache of the full path to cached .css/.js files in the filesystem
|
||||
|
||||
@@ -100,7 +100,7 @@ export ODOO_LIST_DB="${ODOO_LIST_DB:-no}" # only used during the first initializ
|
||||
|
||||
# Odoo credentials
|
||||
export ODOO_EMAIL="${ODOO_EMAIL:-user@example.com}" # only used during the first initialization
|
||||
export ODOO_PASSWORD="${ODOO_PASSWORD:-bitnami}" # only used during the first initialization
|
||||
export ODOO_PASSWORD="${ODOO_PASSWORD:-}" # only used during the first initialization
|
||||
|
||||
# Odoo SMTP credentials
|
||||
ODOO_SMTP_HOST="${ODOO_SMTP_HOST:-"${SMTP_HOST:-}"}"
|
||||
|
||||
@@ -89,7 +89,7 @@ The following tables list the main variables you can set.
|
||||
| `ODOO_LOAD_DEMO_DATA` | Whether to load demo data. | `no` |
|
||||
| `ODOO_LIST_DB` | Whether the database selector is available. | `no` |
|
||||
| `ODOO_EMAIL` | Odoo user e-mail address. | `user@example.com` |
|
||||
| `ODOO_PASSWORD` | Odoo user password. | `bitnami` |
|
||||
| `ODOO_PASSWORD` | Odoo user password. | `nil` |
|
||||
| `ODOO_SMTP_HOST` | Odoo SMTP server host. | `nil` |
|
||||
| `ODOO_SMTP_PORT_NUMBER` | Odoo SMTP server port number. | `nil` |
|
||||
| `ODOO_SMTP_USER` | Odoo SMTP server user. | `nil` |
|
||||
|
||||
@@ -22,6 +22,7 @@ services:
|
||||
environment:
|
||||
# ALLOW_EMPTY_PASSWORD is recommended only for development.
|
||||
- ALLOW_EMPTY_PASSWORD=yes
|
||||
- ODOO_PASSWORD=bitnami
|
||||
- ODOO_DATABASE_HOST=postgresql
|
||||
- ODOO_DATABASE_PORT_NUMBER=5432
|
||||
- ODOO_DATABASE_USER=bn_odoo
|
||||
|
||||
Reference in New Issue
Block a user