diff --git a/ci/release-image/Dockerfile b/ci/release-image/Dockerfile index f665a1588..42e13fba6 100644 --- a/ci/release-image/Dockerfile +++ b/ci/release-image/Dockerfile @@ -42,6 +42,11 @@ 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 +RUN mkdir -p ${ENTRYPOINTD} + 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..228ea98c0 100755 --- a/ci/release-image/entrypoint.sh +++ b/ci/release-image/entrypoint.sh @@ -18,4 +18,13 @@ 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 +chmod u+x ${ENTRYPOINTD}/*.sh +sudo chown -R ${USER} ${ENTRYPOINTD}/* +for f in ${ENTRYPOINTD}/*.sh; do + echo "Running Entrypoint: ${f}" + bash "${f}" +done + exec dumb-init /usr/bin/code-server "$@"