From e35bcb93b386f1b0d345caa536b01e05046d3540 Mon Sep 17 00:00:00 2001 From: Vit Zikmund Date: Tue, 31 Dec 2024 18:57:10 +0100 Subject: [PATCH] feat(docker): use overridable docker-entrypoint.sh --- Dockerfile | 14 +++++++++----- scripts/docker-entrypoint-dockerhub.sh | 15 +++++++++++++++ scripts/docker-entrypoint.sh | 3 +++ scripts/docker-prerun.sh | 16 ---------------- 4 files changed, 27 insertions(+), 21 deletions(-) create mode 100755 scripts/docker-entrypoint-dockerhub.sh create mode 100755 scripts/docker-entrypoint.sh delete mode 100755 scripts/docker-prerun.sh diff --git a/Dockerfile b/Dockerfile index 61c6e44..37509bf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -49,17 +49,21 @@ RUN chown $USER_NAME $STORAGE_DIR ARG EXTRA_PACKAGES="wsgi_cors_middleware" RUN pip install ${EXTRA_PACKAGES} -USER $USER_NAME - WORKDIR /app ENV UWSGI_MODULE "giftless.wsgi_entrypoint" ARG IS_DOCKERHUB -ENV IS_DOCKERHUB=$IS_DOCKERHUB +# Override default docker entrypoint for dockerhub +RUN --mount=target=/build-ctx set -e ;\ + if [ "$IS_DOCKERHUB" = true ]; then \ + cp /build-ctx/scripts/docker-entrypoint-dockerhub.sh scripts/docker-entrypoint.sh ;\ + fi + +USER $USER_NAME -ENTRYPOINT ["scripts/docker-prerun.sh"] -CMD ["tini", "uwsgi", "--", "-s", "127.0.0.1:5000", "-M", "-T", "--threads", "2", "-p", "2", \ +ENTRYPOINT ["tini", "--", "scripts/docker-entrypoint.sh"] +CMD ["uwsgi", "-s", "127.0.0.1:5000", "-M", "-T", "--threads", "2", "-p", "2", \ "--manage-script-name", "--callable", "app"] # TODO remove this STOPSIGNAL override after uwsgi>=2.1 diff --git a/scripts/docker-entrypoint-dockerhub.sh b/scripts/docker-entrypoint-dockerhub.sh new file mode 100755 index 0000000..9499836 --- /dev/null +++ b/scripts/docker-entrypoint-dockerhub.sh @@ -0,0 +1,15 @@ +#!/bin/sh +# Deprecation warning for images on dockerhub. + +# ANSI color codes +RED='\033[1;31m' +YELLOW='\033[1;33m' +RESET='\033[0m' + +echo "${RED}**********************************************${RESET}" +echo "${YELLOW}WARNING:${RESET} This Docker image from docker.io is deprecated!" +echo "${YELLOW}It will no longer be maintained. Please use ghcr.io/datopian/giftless." +echo "${YELLOW}Refer to https://github.com/datopian/giftless for more details." +echo "${RED}**********************************************${RESET}" + +exec "$@" diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh new file mode 100755 index 0000000..b7984b3 --- /dev/null +++ b/scripts/docker-entrypoint.sh @@ -0,0 +1,3 @@ +#!/bin/sh +# This is a default docker entrypoint (for pre-checks) to be conditionally overridden from Dockerfile. +exec "$@" diff --git a/scripts/docker-prerun.sh b/scripts/docker-prerun.sh deleted file mode 100755 index 029323a..0000000 --- a/scripts/docker-prerun.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -# ANSI color codes -RED='\033[1;31m' -YELLOW='\033[1;33m' -RESET='\033[0m' - -if [ "$IS_DOCKERHUB" = true ]; then - echo "${RED}**********************************************${RESET}" - echo "${YELLOW}WARNING:${RESET} This Docker image from docker.io is deprecated!" - echo "${YELLOW}It will no longer be maintained. Please use ghcr.io/datopian/giftless." - echo "${YELLOW}Refer to https://github.com/datopian/giftless for more details." - echo "${RED}**********************************************${RESET}" -fi - -exec "$@"