# FROM ubuntu:noble FROM ubuntu:noble # ENV LANG C.UTF-8 ENV LANG C.UTF-8 # USER root USER root # Install debian packages RUN set -x ; \ apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends apt-transport-https build-essential ca-certificates curl file fonts-freefont-ttf fonts-noto-cjk gawk gnupg gsfonts libldap2-dev libjpeg9-dev libsasl2-dev libxslt1-dev lsb-release npm ocrmypdf sed sudo unzip xfonts-75dpi zip zlib1g-dev \ && rm -rf /var/lib/apt/lists/* # Install debian packages RUN set -x ; \ apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends publicsuffix python3 flake8 python3-dbfread python3-dev python3-gevent python3-pip python3-setuptools python3-wheel python3-markdown python3-mock python3-phonenumbers python3-websocket python3-google-auth libpq-dev pylint python3-jwt python3-asn1crypto python3-html2text python3-suds python3-xmlsec \ && rm -rf /var/lib/apt/lists/* # Install wkhtmltopdf with values {"wkhtmltopdf_version": "0.12.6.1-2", "wkhtmltopdf_os_release": "jammy"} RUN curl -sSL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb -o /tmp/wkhtml.deb \ && apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends --fix-missing -qq /tmp/wkhtml.deb \ && rm -rf /var/lib/apt/lists/* \ && rm /tmp/wkhtml.deb # ENV npm_config_prefix=/usr ENV npm_config_prefix=/usr # RUN npm install RUN npm install --force -g rtlcss@3.4.0 es-check@6.0.0 eslint@8.1.0 prettier@2.7.1 eslint-config-prettier@8.5.0 eslint-plugin-prettier@4.2.1 # Install branch debian/control with latest postgresql-client with values {"odoo_branch": "17.0", "os_release_name": "`lsb_release -s -c`"} # This layer updates the repository list to get the latest postgresql-client, mainly needed if the host postgresql version is higher than the default version of the docker os ADD https://raw.githubusercontent.com/odoo/odoo/17.0/debian/control /tmp/control.txt RUN curl -sSL https://www.postgresql.org/media/keys/ACCC4CF8.asc -o /etc/apt/trusted.gpg.d/psql_client.asc \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -s -c`-pgdg main" > /etc/apt/sources.list.d/pgclient.list \ && apt-get update \ && sed -n '/^Depends:/,/^[A-Z]/p' /tmp/control.txt \ | awk '/^ [a-z]/ { gsub(/,/,"") ; gsub(" ", "") ; print $NF }' | sort -u \ | DEBIAN_FRONTEND=noninteractive xargs apt-get install -y -qq --no-install-recommends \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # Install chrome with values {"chrome_version": "126.0.6478.182-1"} RUN curl -sSL https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_126.0.6478.182-1_amd64.deb -o /tmp/chrome.deb \ && apt-get update \ && apt-get -y install --no-install-recommends /tmp/chrome.deb \ && rm /tmp/chrome.deb # Ubuntu Noble decided to add a default use ubuntu with id 1000 in the image, that may interact with the user creation, lets remove it RUN deluser ubuntu # Create user template RUN groupadd -g ${USERGID} ${USERNAME} && useradd --create-home -u ${USERUID} -g ${USERNAME} -G audio,video ${USERNAME} # Switch user USER ${USERNAME} # needed to install requirements outside a venv ENV PIP_BREAK_SYSTEM_PACKAGES=1 # Install pip packages RUN python3 -m pip install --no-cache-dir ebaysdk==2.1.5 pdf417gen==0.7.1 ruff==0.4.7 # Install branch requirements with values {"USERNAME": "$${USERNAME}", "odoo_branch": "17.0"} ADD --chown=${USERNAME} https://raw.githubusercontent.com/odoo/odoo/17.0/requirements.txt /tmp/requirements.txt RUN python3 -m pip install --no-cache-dir -r /tmp/requirements.txt # Install pip packages RUN python3 -m pip install --no-cache-dir xmltodict==0.13.0 pydantic==2.8.2 unicodedata2==15.1.0 beautifulsoup4==4.12.2 boto3==1.34.39 Cerberus==1.3.5 email_validator==2.2.0 redis==5.0.2 openpyxl==3.1.5 tabulate==0.9.0 async-timeout==4.0.3 attrs==23.2.0