diff --git a/ci/build/clean.sh b/ci/build/clean.sh index 87e573c0..0e0425a4 100755 --- a/ci/build/clean.sh +++ b/ci/build/clean.sh @@ -13,7 +13,8 @@ main() { release-gcp \ release-images \ dist \ - .cache + .cache \ + node-* pushd lib/vscode git clean -xffd 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 "$@" diff --git a/ci/steps/release-packages.sh b/ci/steps/release-packages.sh index 95cfac65..cc6cd2a0 100755 --- a/ci/steps/release-packages.sh +++ b/ci/steps/release-packages.sh @@ -4,11 +4,11 @@ set -euo pipefail main() { cd "$(dirname "$0")/../.." - if [[ $OSTYPE == darwin* ]]; then - NODE_VERSION=v12.18.3 - curl -L "https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION-darwin-x64.tar.gz" | tar -xz - PATH="$PWD/node-$NODE_VERSION-darwin-x64/bin:$PATH" - fi + NODE_VERSION=v12.18.3 + NODE_OS="$(uname | tr '[:upper:]' '[:lower:]')" + NODE_ARCH="$(uname -m | sed 's/86_64/64/; s/aarch64/arm64/')" + curl -L "https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION-$NODE_OS-$NODE_ARCH.tar.gz" | tar -xz + PATH="$PWD/node-$NODE_VERSION-$NODE_OS-$NODE_ARCH/bin:$PATH" # https://github.com/actions/upload-artifact/issues/38 tar -xzf release-npm-package/package.tar.gz