From 5276e41606c89c3e9d55e87c2995d4c7be02f74d Mon Sep 17 00:00:00 2001 From: djarbz <30350993+djarbz@users.noreply.github.com> Date: Wed, 11 May 2022 17:10:04 -0500 Subject: [PATCH] Allow user Entrypoint scripts (#5194) * Allow user Entrypoint scripts * Variable encapsulation Co-authored-by: Asher * Check if Entrypoint Dir exists & run all executable * Don't create entrypoint.d by default * yarn fmt * yarn fmt * Fix for SC2044 * Revert "yarn fmt" This reverts commit 5ca347f36155ec731587c1ed8437bca332c76693. Co-authored-by: Asher --- ci/release-image/Dockerfile | 4 ++++ ci/release-image/entrypoint.sh | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/ci/release-image/Dockerfile b/ci/release-image/Dockerfile index f665a1588..c0eaa3de1 100644 --- a/ci/release-image/Dockerfile +++ b/ci/release-image/Dockerfile @@ -42,6 +42,10 @@ RUN ARCH="$(dpkg --print-architecture)" && \ COPY ci/release-image/entrypoint.sh /usr/bin/entrypoint.sh RUN --mount=from=packages,src=/tmp,dst=/tmp/packages dpkg -i /tmp/packages/code-server*$(dpkg --print-architecture).deb +# Allow users to have scripts run on container startup to prepare workspace. +# https://github.com/coder/code-server/issues/5177 +ENV ENTRYPOINTD=${HOME}/entrypoint.d + EXPOSE 8080 # This way, if someone sets $DOCKER_USER, docker-exec will still work as # the uid will remain the same. note: only relevant if -u isn't passed to diff --git a/ci/release-image/entrypoint.sh b/ci/release-image/entrypoint.sh index 9af98fbc3..460b559ba 100755 --- a/ci/release-image/entrypoint.sh +++ b/ci/release-image/entrypoint.sh @@ -18,4 +18,10 @@ if [ "${DOCKER_USER-}" ]; then fi fi +# Allow users to have scripts run on container startup to prepare workspace. +# https://github.com/coder/code-server/issues/5177 +if [ -d "${ENTRYPOINTD}" ]; then + find "${ENTRYPOINTD}" -type f -executable -print -exec {} \; +fi + exec dumb-init /usr/bin/code-server "$@"