From 4c4a7413a1a0c71ca0ceafc10919fdf61c8d5832 Mon Sep 17 00:00:00 2001 From: Anmol Sethi Date: Tue, 25 Aug 2020 15:38:12 -0400 Subject: [PATCH] docker: Allow passing $DOCKER_USER to set the username in the container Needs to be reflected in the documentation and the dockerhub description now. Closes #881 --- ci/release-image/Dockerfile | 3 ++- ci/release-image/entrypoint.sh | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100755 ci/release-image/entrypoint.sh diff --git a/ci/release-image/Dockerfile b/ci/release-image/Dockerfile index defc15c9..4dcd2bfb 100644 --- a/ci/release-image/Dockerfile +++ b/ci/release-image/Dockerfile @@ -35,9 +35,10 @@ RUN ARCH="$(dpkg --print-architecture)" && \ printf "user: coder\ngroup: coder\n" > /etc/fixuid/config.yml COPY release-packages/code-server*.deb /tmp/ +COPY ci/release-image/entrypoint.sh /usr/bin/entrypoint.sh RUN dpkg -i /tmp/code-server*$(dpkg --print-architecture).deb && rm /tmp/code-server*.deb EXPOSE 8080 USER coder WORKDIR /home/coder -ENTRYPOINT ["dumb-init", "fixuid", "-q", "/usr/bin/code-server", "--bind-addr", "0.0.0.0:8080", "."] +ENTRYPOINT ["/usr/bin/entrypoint.sh", "--bind-addr", "0.0.0.0:8080", "."] diff --git a/ci/release-image/entrypoint.sh b/ci/release-image/entrypoint.sh new file mode 100755 index 00000000..6e7525ce --- /dev/null +++ b/ci/release-image/entrypoint.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env sh +set -eu + +if [ "${DOCKER_USER-}" ]; then + echo "$DOCKER_USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/nopasswd > /dev/null + sudo usermod --login "$DOCKER_USER" \ + --move-home --home "/home/$DOCKER_USER" \ + coder + sudo groupmod -n "$DOCKER_USER" coder + + sudo sed -i "/coder/d" /etc/sudoers.d/nopasswd + sudo sed -i "s/coder/$DOCKER_USER/g" /etc/fixuid/config.yml + export HOME="/home/$DOCKER_USER" +fi + +# This isn't set by default. +export USER="$(whoami)" +dumb-init fixuid -q /usr/bin/code-server "$@"