FROM unit:1.34.2-minimal ARG SERVICE_NAME=not-set ARG SERVICE_VER=not-set ENV DEBIAN_FRONTEND="noninteractive" \ PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ TZ=UTC \ LANG=en_GB.UTF-8 \ LANGUAGE=en_GB:en \ LC_ALL=en_GB.UTF-8 \ SERVICE_NAME=$SERVICE_NAME \ SERVICE_VER=$SERVICE_VER SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \ && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y locales apt-transport-https gnupg2 lsb-release \ && sed -i -e 's/# en_GB.UTF-8 UTF-8/en_GB.UTF-8 UTF-8/' /etc/locale.gen \ && locale-gen en_GB.UTF-8 \ && update-locale \ && mkdir -p /usr/src/app/cert \ # download and save NGINX’s signing key and add Unit’s repository to APT sources && curl --output /usr/share/keyrings/nginx-keyring.gpg https://unit.nginx.org/keys/nginx-keyring.gpg \ && touch /etc/apt/sources.list.d/unit.list \ && echo "deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/debian/ $(lsb_release -cs) unit" \ | tee -a /etc/apt/sources.list.d/unit.list \ && echo "deb-src [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/debian/ $(lsb_release -cs) unit" \ | tee -a /etc/apt/sources.list.d/unit.list \ # we install Unit's Python module package and perform cleanup && apt-get update && apt-get install --no-install-recommends --no-install-suggests -y unit-python3.11 openssh-client python3 python3-pip \ && touch ~/.rnd \ && ldconfig \ # display Unit’s version and the ./configure settings it was built with && unitd --version \ # install python packages && python3 -m pip install --no-cache-dir --upgrade --break-system-packages pip==24.3.1 \ requests \ connexion[swagger-ui]==2.14.2 \ pyrsistent==0.20.0 \ gevent==25.4.1 \ python_dateutil==2.9.0 \ setuptools==79.0.0 \ mysql-connector-python==9.3.0 \ Flask-SQLAlchemy==3.1.1 \ python-decouple==3.8 \ opentelemetry-api \ opentelemetry-sdk \ opentelemetry-instrumentation-flask \ opentelemetry-instrumentation-mysql \ opentelemetry-instrumentation-sqlalchemy \ opentelemetry-distro \ opentelemetry-exporter-otlp \ && apt-get remove -y apt-transport-https gnupg2 lsb-release python3-pip \ && apt-get autoremove --purge -y \ && rm -f /requirements.apt \ && rm -rf /var/lib/apt/lists/* /etc/apt/sources.list.d/*.list \ && ln -sf /dev/stdout /var/log/access.log && ln -sf /dev/stderr /var/log/error.log COPY ./server /usr/src/app COPY ./docker_files/server.cnf /usr/tls/certs/ COPY ./docker_files/docker-entrypoint.sh /usr/local/bin/ COPY ./docker_files/listener.json / COPY ./docker_files/config.json /docker-entrypoint.d/ WORKDIR /usr/src/app RUN chown -R unit:unit /usr/src/app CMD ["unitd-debug","--no-daemon","--control","unix:/var/run/control.unit.sock"]