diff --git a/Dockerfile b/Dockerfile index 681190122bc18fe1fd7d553ed8a48e01ff5204f8..30b1756419e918e1beec2af21ee515d5bd11360f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,19 +6,18 @@ ARG SOPDS_GIT_TAG ############################################################ FROM $DOCKER_IMAGE_GIT AS git -RUN set -ex && \ - ( git clone https://gitlab.cyberbrain.pw/tools/mirror/sopds.git /tmp || echo error: failed to clone master repository. ) && \ +RUN ( git clone https://gitlab.cyberbrain.pw/tools/mirror/sopds.git /tmp || echo error: failed to clone master repository. ) && \ git -C /tmp -c advice.detachedHead=false checkout ${SOPDS_GIT_TAG:-$(git -C /tmp tag | grep -e '^v' | sort -V | tail -n 1)} && \ - ls -la /tmp + rm -rf /tmp/.git ############################################################ FROM python:3.10-slim AS base ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 -ENV BASE_DEPENDENCIES="libpq5 libmariadb3 libxml2 libxslt1.1 libffi8 libjpeg62-turbo zlib1g xz-utils bzip2" ENV PATH="/opt/sopds/bin:$PATH" WORKDIR /home/sopds +ARG BASE_DEPENDENCIES="libpq5 libmariadb3 libxml2 libxslt1.1 libffi8 libjpeg62-turbo zlib1g xz-utils bzip2" RUN apt-get update && \ apt-get install --no-install-recommends -y ${BASE_DEPENDENCIES} && \ apt-get clean && \ @@ -27,7 +26,7 @@ RUN apt-get update && \ ############################################################ FROM base AS builder -ENV BUILD_DEPENDENCIES="pkg-config build-essential libmariadb-dev libpq-dev libxml2-dev libxslt-dev libffi-dev libjpeg-dev zlib1g-dev liblzma-dev libbz2-dev" +ARG BUILD_DEPENDENCIES="pkg-config build-essential libmariadb-dev libpq-dev libxml2-dev libxslt-dev libffi-dev libjpeg-dev zlib1g-dev liblzma-dev libbz2-dev" RUN apt-get update && \ apt-get install --no-install-recommends -y ${BUILD_DEPENDENCIES} && \ apt-get clean && \ @@ -42,22 +41,21 @@ RUN pip3 install --ignore-installed --no-cache-dir --upgrade --disable-pip-versi ############################################################ FROM base AS runtime -ENV RUNTIME_DEPENDENCIES="unzip" \ - OWNER_UID=1000 \ - OWNER_GID=1000 +ARG RUNTIME_DEPENDENCIES="unzip" RUN apt-get update && \ apt-get install --no-install-recommends -y ${RUNTIME_DEPENDENCIES} && \ apt-get clean && \ - rm -rf /var/lib/apt/lists/* && \ - ( addgroup --system --gid $OWNER_GID sopds || echo sopds:x:$OWNER_GID:sopds | tee -a /etc/group ) && \ - ( adduser --system --home /home/sopds --ingroup sopds --uid $OWNER_UID sopds --shell /bin/sh || echo sopds:x:$OWNER_UID:$OWNER_GID:Linux User,,,:/home/sopds:/bin/sh | tee -a /etc/passwd ) && \ + rm -rf /var/lib/apt/lists/* +ARG OWNER_UID=1000 \ + OWNER_GID=1000 +RUN ( addgroup --system --gid $OWNER_GID sopds || echo sopds:x:$OWNER_GID:sopds | tee -a /etc/group ) && \ + ( adduser --system --home /home/sopds --ingroup sopds --uid $OWNER_UID sopds --shell /bin/sh || echo sopds:x:$OWNER_UID:$OWNER_GID:Linux User,,,:/home/sopds:/bin/sh | tee -a /etc/passwd ) && \ chown -R sopds:sopds /home/sopds COPY --from=builder /opt/sopds/ /opt/sopds/ COPY --from=git --chown=sopds:sopds /tmp/ /home/sopds/ -COPY superuser.py /home/sopds/ +COPY --chown=sopds:sopds superuser.py /home/sopds/ COPY entrypoint.sh /entrypoint.sh -RUN set -ex && \ - chmod a+x /entrypoint.sh +RUN chmod a+x /entrypoint.sh ENTRYPOINT [ "/entrypoint.sh" ] CMD [ "help" ] USER sopds:sopds