FROM buildpack-deps:22.04-curl RUN apt-get update && apt-get install -y --no-install-recommends \ ansible \ git \ unzip \ xz-utils \ openssh-client \ openssl \ dnsutils \ curl \ sudo \ screen \ smbclient \ wget \ rsync \ whois \ netcat \ nmap \ terminator \ tmux \ vim \ neofetch \ wget \ curl \ net-tools \ locales \ bzip2 \ python3-numpy \ supervisor \ xdotool \ zsh \ && rm -rf /var/lib/apt/lists/* RUN curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -\ && apt install nodejs WORKDIR /home/ ARG RELEASE_TAG="openvscode-server-v1.82.2" ARG RELEASE_ORG="gitpod-io" ARG OPENVSCODE_SERVER_ROOT="/home/.openvscode-server" # Downloading the latest VSC Server release and extracting the release archive # Rename `openvscode-server` cli tool to `code` for convenience RUN if [ -z "${RELEASE_TAG}" ]; then \ echo "The RELEASE_TAG build arg must be set." >&2 && \ exit 1; \ fi && \ arch=$(uname -m) && \ if [ "${arch}" = "x86_64" ]; then \ arch="x64"; \ elif [ "${arch}" = "aarch64" ]; then \ arch="arm64"; \ elif [ "${arch}" = "armv7l" ]; then \ arch="armhf"; \ fi && \ wget https://github.com/${RELEASE_ORG}/openvscode-server/releases/download/${RELEASE_TAG}/${RELEASE_TAG}-linux-${arch}.tar.gz && \ tar -xzf ${RELEASE_TAG}-linux-${arch}.tar.gz && \ mv -f ${RELEASE_TAG}-linux-${arch} ${OPENVSCODE_SERVER_ROOT} && \ cp ${OPENVSCODE_SERVER_ROOT}/bin/remote-cli/openvscode-server ${OPENVSCODE_SERVER_ROOT}/bin/remote-cli/code && \ rm -f ${RELEASE_TAG}-linux-${arch}.tar.gz ARG USERNAME=user ARG USER_UID=1000 ARG USER_GID=$USER_UID # Creating the user and usergroup RUN groupadd --gid $USER_GID $USERNAME \ && useradd --uid $USER_UID --gid $USERNAME -m -s /bin/bash $USERNAME \ && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ && chmod 0440 /etc/sudoers.d/$USERNAME RUN chmod g+rw /home && \ mkdir -p /home/workspace && \ chown -R $USERNAME:$USERNAME /home/workspace && \ chown -R $USERNAME:$USERNAME ${OPENVSCODE_SERVER_ROOT} USER $USERNAME WORKDIR /home/workspace/ ENV LANG=C.UTF-8 \ LC_ALL=C.UTF-8 \ HOME=/home/workspace \ EDITOR=code \ VISUAL=code \ GIT_EDITOR="code --wait" \ OPENVSCODE_SERVER_ROOT=${OPENVSCODE_SERVER_ROOT} # Install Softwares RUN yes | sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" RUN sudo chsh -s ~/.zshrc # Install VS Code Extensions ENV OPENVSCODE="${OPENVSCODE_SERVER_ROOT}/bin/openvscode-server" RUN ${OPENVSCODE} --install-extension ms-python.python && \ ${OPENVSCODE} --install-extension monokai.theme-monokai-pro-vscode RUN sudo mkdir -p /data && sudo chown $USERNAME: /data EXPOSE 7860 ENTRYPOINT [ "/bin/sh", "-c", "exec ${OPENVSCODE_SERVER_ROOT}/bin/openvscode-server --host 0.0.0.0 --port 7860 --without-connection-token"]