diff --git a/ee/api/Dockerfile b/ee/api/Dockerfile index f15d68569..a29700316 100644 --- a/ee/api/Dockerfile +++ b/ee/api/Dockerfile @@ -1,8 +1,31 @@ FROM python:3.12-alpine -LABEL Maintainer="KRAIEM Taha Yassine" -RUN apk add --no-cache build-base libressl libffi-dev libressl-dev libxslt-dev libxml2-dev xmlsec-dev xmlsec tini +LABEL maintainer="KRAIEM Taha Yassine" +WORKDIR /app + +COPY . . +RUN mv env.default .env +RUN apk add --no-cache tini xmlsec && \ + export UV_SYSTEM_PYTHON=true && \ + pip install uv && \ + apk add --no-cache --virtual .build-deps \ + build-base \ + libressl \ + libffi-dev \ + libressl-dev \ + libxslt-dev \ + libxml2-dev \ + xmlsec-dev && \ + uv pip install --no-cache-dir --upgrade -r requirements.txt && \ + # Solve the libxml2 library version mismatch by reinstalling lxml with matching libxml2 + uv pip uninstall lxml && \ + uv pip install --no-cache-dir --no-binary lxml lxml --force-reinstall && \ + # Create non-root user + adduser -u 1001 openreplay -D && \ + # Cleanup build dependencies + apk del .build-deps ARG envarg +ARG GIT_SHA ENV SOURCE_MAP_VERSION=0.7.4 \ APP_NAME=chalice \ LISTEN_PORT=8000 \ @@ -10,17 +33,12 @@ ENV SOURCE_MAP_VERSION=0.7.4 \ ENTERPRISE_BUILD=${envarg} \ GIT_SHA=$GIT_SHA -WORKDIR /work -COPY requirements.txt ./requirements.txt -RUN pip install --no-cache-dir --upgrade -r requirements.txt -# This code is used to solve 'lxml & xmlsec libxml2 library version mismatch' error -RUN pip uninstall -y lxml && pip install lxml +WORKDIR /app COPY . . RUN mv env.default .env -RUN adduser -u 1001 openreplay -D USER 1001 ENTRYPOINT ["/sbin/tini", "--"] -CMD ./entrypoint.sh +CMD ["./entrypoint.sh"] diff --git a/ee/api/requirements.txt b/ee/api/requirements.txt index 7b849d9fe..0ab8a96b4 100644 --- a/ee/api/requirements.txt +++ b/ee/api/requirements.txt @@ -21,8 +21,8 @@ apscheduler==3.10.4 clickhouse-driver[lz4]==0.2.9 # TODO: enable after xmlsec fix https://github.com/xmlsec/python-xmlsec/issues/252 #--no-binary is used to avoid libxml2 library version incompatibilities between xmlsec and lxml -lxml >= 4.6.5, !=4.7.0, <=5.2.1 -python3-saml==1.16.0 --no-binary=lxml +python3-saml==1.16.0 +--no-binary=lxml python-multipart==0.0.17 redis==5.2.0