From ebac84899e71d04a313f9ce1f94dfe9171aae249 Mon Sep 17 00:00:00 2001 From: Anmol Sethi Date: Thu, 4 Apr 2019 16:43:23 -0500 Subject: [PATCH] Significantly improve the Dockerfile - Adds dumb-init so closes #403, closes #361, closes #383 - User mode docker so closes #192, closes #65 - Uses latest docker ubuntu instead of 18.10 which is the rolling tag so closes #404 Thanks to @RichardMcSorley and @sr229 --- Dockerfile | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index da02c570..e00bd66a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,17 +16,30 @@ COPY . . RUN yarn && NODE_ENV=production yarn task build:server:binary # We deploy with ubuntu so that devs have a familiar environment. -FROM ubuntu:18.10 +FROM ubuntu:18.04 RUN apt-get update && apt-get install -y \ openssl \ net-tools \ git \ locales \ + sudo \ dumb-init + RUN locale-gen en_US.UTF-8 # We unfortunately cannot use update-locale because docker will not use the env variables # configured in /etc/default/locale so we need to set it manually. -ENV LANG=en_US.UTF-8 -ENV LC_ALL=en_US.UTF-8 -ENTRYPOINT ["/usr/bin/dumb-init", "code-server"] +ENV LC_ALL=en_US.UTF-8 + +RUN adduser --gecos '' --disabled-password coder +RUN echo "coder ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/nopasswd + +USER coder +# We create first instead of just using WORKDIR as when WORKDIR creates, the user is root. +RUN mkdir -p /home/coder/project +WORKDIR /home/coder/project + +COPY --from=0 /src/packages/server/cli-linux-x64 /usr/local/bin/code-server +EXPOSE 8443 + +ENTRYPOINT ["dumb-init", "code-server"]