Skip to content

Commit d8d5908

Browse files
authored
Merge pull request #2001 from cdr/docker-user-1c5d
docker: Allow passing $DOCKER_USER to set the username in the container
2 parents 1558ff6 + 4b7c2ea commit d8d5908

File tree

4 files changed

+27
-7
lines changed

4 files changed

+27
-7
lines changed

ci/build/clean.sh

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ main() {
1313
release-gcp \
1414
release-images \
1515
dist \
16-
.cache
16+
.cache \
17+
node-*
1718

1819
pushd lib/vscode
1920
git clean -xffd

ci/release-image/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,10 @@ RUN ARCH="$(dpkg --print-architecture)" && \
3535
printf "user: coder\ngroup: coder\n" > /etc/fixuid/config.yml
3636

3737
COPY release-packages/code-server*.deb /tmp/
38+
COPY ci/release-image/entrypoint.sh /usr/bin/entrypoint.sh
3839
RUN dpkg -i /tmp/code-server*$(dpkg --print-architecture).deb && rm /tmp/code-server*.deb
3940

4041
EXPOSE 8080
4142
USER coder
4243
WORKDIR /home/coder
43-
ENTRYPOINT ["dumb-init", "fixuid", "-q", "/usr/bin/code-server", "--bind-addr", "0.0.0.0:8080", "."]
44+
ENTRYPOINT ["/usr/bin/entrypoint.sh", "--bind-addr", "0.0.0.0:8080", "."]

ci/release-image/entrypoint.sh

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/usr/bin/env sh
2+
set -eu
3+
4+
if [ "${DOCKER_USER-}" ]; then
5+
echo "$DOCKER_USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/nopasswd > /dev/null
6+
sudo usermod --login "$DOCKER_USER" \
7+
--move-home --home "/home/$DOCKER_USER" \
8+
coder
9+
sudo groupmod -n "$DOCKER_USER" coder
10+
11+
sudo sed -i "/coder/d" /etc/sudoers.d/nopasswd
12+
sudo sed -i "s/coder/$DOCKER_USER/g" /etc/fixuid/config.yml
13+
export HOME="/home/$DOCKER_USER"
14+
fi
15+
16+
# This isn't set by default.
17+
export USER="$(whoami)"
18+
dumb-init fixuid -q /usr/bin/code-server "$@"

ci/steps/release-packages.sh

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ set -euo pipefail
44
main() {
55
cd "$(dirname "$0")/../.."
66

7-
if [[ $OSTYPE == darwin* ]]; then
8-
NODE_VERSION=v12.18.3
9-
curl -L "https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION-darwin-x64.tar.gz" | tar -xz
10-
PATH="$PWD/node-$NODE_VERSION-darwin-x64/bin:$PATH"
11-
fi
7+
NODE_VERSION=v12.18.3
8+
NODE_OS="$(uname | tr '[:upper:]' '[:lower:]')"
9+
NODE_ARCH="$(uname -m | sed 's/86_64/64/; s/aarch64/arm64/')"
10+
curl -L "https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION-$NODE_OS-$NODE_ARCH.tar.gz" | tar -xz
11+
PATH="$PWD/node-$NODE_VERSION-$NODE_OS-$NODE_ARCH/bin:$PATH"
1212

1313
# https://github.com/actions/upload-artifact/issues/38
1414
tar -xzf release-npm-package/package.tar.gz

0 commit comments

Comments
 (0)