content: FROM python:3.5-stretch AS base
  
  EXPOSE 8069 8072
  
  ARG GEOIP_UPDATER_VERSION=4.1.5
  ARG MQT=https://github.com/OCA/maintainer-quality-tools.git
  ARG WKHTMLTOPDF_VERSION=0.12.5
  ARG WKHTMLTOPDF_CHECKSUM='1140b0ab02aa6e17346af2f14ed0de807376de475ba90e1db3975f112fbd20bb'
  ENV DB_FILTER=.* \
      DEPTH_DEFAULT=1 \
      DEPTH_MERGE=100 \
      EMAIL=https://hub.docker.com/r/tecnativa/odoo \
      GEOIP_ACCOUNT_ID="" \
      GEOIP_LICENSE_KEY="" \
      GIT_AUTHOR_NAME=docker-odoo \
      INITIAL_LANG="" \
      LC_ALL=C.UTF-8 \
      LIST_DB=false \
      NODE_PATH=/usr/local/lib/node_modules:/usr/lib/node_modules \
      OPENERP_SERVER=/opt/odoo/auto/odoo.conf \
      PATH="/home/odoo/.local/bin:$PATH" \
      PIP_NO_CACHE_DIR=0 \
      PTVSD_ARGS="--host 0.0.0.0 --port 6899 --wait --multiprocess" \
      PTVSD_ENABLE=0 \
      DEBUGPY_ARGS="--listen 0.0.0.0:6899 --wait-for-client" \
      DEBUGPY_ENABLE=0 \
      PUDB_RDB_HOST=0.0.0.0 \
      PUDB_RDB_PORT=6899 \
      PYTHONOPTIMIZE="" \
      UNACCENT=true \
      WAIT_DB=true \
      WDB_NO_BROWSER_AUTO_OPEN=True \
      WDB_SOCKET_SERVER=wdb \
      WDB_WEB_PORT=1984 \
      WDB_WEB_SERVER=localhost
  
  # Debian stretch was moved to archive (and stretch-updates does not exist in archive)
  RUN sed -i 's,http://deb.debian.org,http://archive.debian.org,g;s,http://security.debian.org,http://archive.debian.org,g;s,\(.*stretch-updates\),#\1,' /etc/apt/sources.list
  
  # Other requirements and recommendations to run Odoo
  # See https://github.com/$ODOO_SOURCE/blob/$ODOO_VERSION/debian/control
  RUN apt-get -qq update \
      && apt-get -yqq upgrade \
      && apt-get install -yqq --no-install-recommends \
          chromium \
          ffmpeg \
          fonts-liberation2 \
          gettext \
          gnupg2 \
          locales-all \
          nano \
          ruby \
          telnet \
          vim \
          zlibc \
          apt-transport-https \
          ca-certificates \
      && echo 'deb https://apt-archive.postgresql.org/pub/repos/apt stretch-pgdg main' >> /etc/apt/sources.list.d/postgresql.list \
      && curl -SL https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
      && curl https://bootstrap.pypa.io/pip/3.5/get-pip.py | python3 /dev/stdin \
      && curl -sL https://deb.nodesource.com/setup_8.x | bash - \
      && apt-get update \
      && apt-get install -yqq --no-install-recommends nodejs \
      && curl -SLo wkhtmltox.deb https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/${WKHTMLTOPDF_VERSION}/wkhtmltox_${WKHTMLTOPDF_VERSION}-1.stretch_amd64.deb \
      && echo "${WKHTMLTOPDF_CHECKSUM}  wkhtmltox.deb" | sha256sum -c - \
      && apt-get install -yqq --no-install-recommends ./wkhtmltox.deb \
      && rm wkhtmltox.deb \
      && wkhtmltopdf --version \
      && curl --silent -L --output geoipupdate_${GEOIP_UPDATER_VERSION}_linux_amd64.deb https://github.com/maxmind/geoipupdate/releases/download/v${GEOIP_UPDATER_VERSION}/geoipupdate_${GEOIP_UPDATER_VERSION}_linux_amd64.deb \
      && dpkg -i geoipupdate_${GEOIP_UPDATER_VERSION}_linux_amd64.deb \
      && rm geoipupdate_${GEOIP_UPDATER_VERSION}_linux_amd64.deb \
      && rm -Rf /var/lib/apt/lists/* /tmp/*
  
  # Special case to get latest Less
  RUN ln -s /usr/bin/nodejs /usr/local/bin/node \
      && npm install -g less \
      && rm -Rf ~/.npm /tmp/*
  
  # Other facilities
  WORKDIR /opt/odoo
  RUN pip install \
          astor \
          # Install fix from https://github.com/acsone/click-odoo-contrib/pull/93
          git+https://github.com/Tecnativa/click-odoo-contrib.git@fix-active-modules-hashing \
          "git-aggregator<3.0.0" \
          "pg_activity<2.0.0" \
          plumbum \
          ptvsd \
          debugpy \
          pydevd-odoo \
          pudb \
          python-magic \
          watchdog \
          wdb \
          geoip2 \
          inotify \
      && sync
  COPY bin-deprecated/* bin/* /usr/local/bin/
  COPY lib/doodbalib /usr/local/lib/python3.5/site-packages/doodbalib
  COPY build.d common/build.d
  COPY conf.d common/conf.d
  COPY entrypoint.d common/entrypoint.d
  RUN rm -f /opt/odoo/common/conf.d/60-geoip-ge17.conf \
      && mv /opt/odoo/common/conf.d/60-geoip-lt17.conf /opt/odoo/common/conf.d/60-geoip.conf
  RUN mkdir -p auto/addons auto/geoip custom/src/private \
      && ln /usr/local/bin/direxec common/entrypoint \
      && ln /usr/local/bin/direxec common/build \
      && chmod -R a+rx common/entrypoint* common/build* /usr/local/bin \
      && chmod -R a+rX /usr/local/lib/python3.5/site-packages/doodbalib \
      && cp -a /etc/GeoIP.conf /etc/GeoIP.conf.orig \
      && mv /etc/GeoIP.conf /opt/odoo/auto/geoip/GeoIP.conf \
      && ln -s /opt/odoo/auto/geoip/GeoIP.conf /etc/GeoIP.conf \
      && sed -i 's/.*DatabaseDirectory .*$/DatabaseDirectory \/opt\/odoo\/auto\/geoip\//g' /opt/odoo/auto/geoip/GeoIP.conf \
      && sync
  
  # Doodba-QA dependencies in a separate virtualenv
  COPY qa /qa
  RUN python -m venv --system-site-packages /qa/venv \
      && . /qa/venv/bin/activate \
      # HACK: Upgrade pip: higher version needed to install pyproject.toml based packages
      && pip install -U pip \
      && pip install --no-cache-dir \
          click \
          coverage \
          flake8 \
          git+https://github.com/OCA/pylint-odoo.git@refs/pull/329/head \
          six \
      && npm install --loglevel error --prefix /qa 'eslint@<7' \
      && deactivate \
      && mkdir -p /qa/artifacts \
      && git clone --depth 1 $MQT /qa/mqt
  
  # Execute installation script by Odoo version
  # This is at the end to benefit from cache at build time
  # https://docs.docker.com/engine/reference/builder/#/impact-on-build-caching
  ARG ODOO_SOURCE=OCA/OCB
  ARG ODOO_VERSION=12.0
  ENV ODOO_VERSION="$ODOO_VERSION"
  RUN debs="libldap2-dev libsasl2-dev" \
      && apt-get update \
      && apt-get install -yqq --no-install-recommends $debs \
      && pip install \
          -r https://raw.githubusercontent.com/$ODOO_SOURCE/$ODOO_VERSION/requirements.txt \
          phonenumbers \
          'websocket-client~=0.53' \
      && (python3 -m compileall -q /usr/local/lib/python3.5/ || true) \
      && apt-get purge -yqq $debs \
      && rm -Rf /var/lib/apt/lists/* /tmp/*
  
  # Metadata
  ARG VCS_REF
  ARG BUILD_DATE
  ARG VERSION
  LABEL org.label-schema.schema-version="$VERSION" \
        org.label-schema.vendor=Tecnativa \
        org.label-schema.license=Apache-2.0 \
        org.label-schema.build-date="$BUILD_DATE" \
        org.label-schema.vcs-ref="$VCS_REF" \
        org.label-schema.vcs-url="https://github.com/Tecnativa/doodba"
  
  # Onbuild version, with all the magic
  FROM base AS onbuild
  
  # Enable setting custom uids for odoo user during build of scaffolds
  ONBUILD ARG UID=1000
  ONBUILD ARG GID=1000
  
  # Enable Odoo user and filestore
  ONBUILD RUN groupadd -g $GID odoo -o \
      && useradd -l -md /home/odoo -s /bin/false -u $UID -g $GID odoo \
      && mkdir -p /var/lib/odoo \
      && chown -R odoo:odoo /var/lib/odoo /qa/artifacts \
      && chmod a=rwX /qa/artifacts \
      && sync
  
  # Subimage triggers
  ONBUILD ENTRYPOINT ["/opt/odoo/common/entrypoint"]
  ONBUILD CMD ["/usr/local/bin/odoo"]
  ONBUILD ARG AGGREGATE=true
  ONBUILD ARG DEFAULT_REPO_PATTERN="https://github.com/OCA/{}.git"
  ONBUILD ARG DEFAULT_REPO_PATTERN_ODOO="https://github.com/OCA/OCB.git"
  ONBUILD ARG DEPTH_DEFAULT=1
  ONBUILD ARG DEPTH_MERGE=100
  ONBUILD ARG CLEAN=true
  ONBUILD ARG COMPILE=true
  ONBUILD ARG FONT_MONO="Liberation Mono"
  ONBUILD ARG FONT_SANS="Liberation Sans"
  ONBUILD ARG FONT_SERIF="Liberation Serif"
  ONBUILD ARG PIP_INSTALL_ODOO=true
  ONBUILD ARG ADMIN_PASSWORD=admin
  ONBUILD ARG SMTP_SERVER=smtp
  ONBUILD ARG SMTP_PORT=25
  ONBUILD ARG SMTP_USER=false
  ONBUILD ARG SMTP_PASSWORD=false
  ONBUILD ARG SMTP_SSL=false
  ONBUILD ARG EMAIL_FROM=""
  ONBUILD ARG PROXY_MODE=false
  ONBUILD ARG WITHOUT_DEMO=all
  ONBUILD ARG PGUSER=odoo
  ONBUILD ARG PGPASSWORD=odoopassword
  ONBUILD ARG PGHOST=db
  ONBUILD ARG PGPORT=5432
  ONBUILD ARG PGDATABASE=prod
  # Config variables
  ONBUILD ENV ADMIN_PASSWORD="$ADMIN_PASSWORD" \
              DEFAULT_REPO_PATTERN="$DEFAULT_REPO_PATTERN" \
              DEFAULT_REPO_PATTERN_ODOO="$DEFAULT_REPO_PATTERN_ODOO" \
              UNACCENT="$UNACCENT" \
              PGUSER="$PGUSER" \
              PGPASSWORD="$PGPASSWORD" \
              PGHOST="$PGHOST" \
              PGPORT=$PGPORT \
              PGDATABASE="$PGDATABASE" \
              PROXY_MODE="$PROXY_MODE" \
              SMTP_SERVER="$SMTP_SERVER" \
              SMTP_PORT=$SMTP_PORT \
              SMTP_USER="$SMTP_USER" \
              SMTP_PASSWORD="$SMTP_PASSWORD" \
              SMTP_SSL="$SMTP_SSL" \
              EMAIL_FROM="$EMAIL_FROM" \
              WITHOUT_DEMO="$WITHOUT_DEMO"
  ONBUILD ARG LOCAL_CUSTOM_DIR=./custom
  ONBUILD COPY --chown=root:odoo $LOCAL_CUSTOM_DIR /opt/odoo/custom
  
  # https://docs.python.org/3/library/logging.html#levels
  ONBUILD ARG LOG_LEVEL=INFO
  ONBUILD RUN mkdir -p /opt/odoo/custom/ssh \
              && ln -s /opt/odoo/custom/ssh ~root/.ssh \
              && chmod -R u=rwX,go= /opt/odoo/custom/ssh \
              && sync
  ONBUILD ARG DB_VERSION=latest
  ONBUILD RUN /opt/odoo/common/build && sync
  ONBUILD VOLUME ["/var/lib/odoo"]
  ONBUILD USER odoo
  # HACK Special case for Werkzeug
  ONBUILD RUN pip install --user Werkzeug==0.14.1
  