FROM ghcr.io/linuxserver/baseimage-ubuntu:focal # set version label ARG BUILD_DATE ARG VERSION ARG CODE_RELEASE LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="aptalca" # environment settings ENV HOME="/config" # Install base dependencies RUN apt-get update && apt-get install -y -q --no-install-recommends \ apt-transport-https \ build-essential \ ca-certificates \ curl \ git \ libssl-dev \ wget \ gnupg-agent \ software-properties-common \ && rm -rf /var/lib/apt/lists/* # replace shell with bash so we can source files RUN rm /bin/sh && ln -s /bin/bash /bin/sh # update the repository sources list # and install dependencies RUN apt-get update \ && apt-get install -y curl \ && apt-get -y autoclean # nvm environment variables ENV NVM_DIR /usr/local/nvm ENV NODE_VERSION 4.4.7 # install nvm # https://github.com/creationix/nvm#install-script RUN curl --silent -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | bash # install node and npm RUN source $NVM_DIR/nvm.sh \ && nvm install $NODE_VERSION \ && nvm alias default $NODE_VERSION \ && nvm use default # add node and npm to path so the commands are available ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH RUN apt install nano wget htop zip unzip -y RUN \ echo "**** install node repo ****" && \ curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \ echo 'deb https://deb.nodesource.com/node_14.x focal main' \ > /etc/apt/sources.list.d/nodesource.list && \ echo "**** install build dependencies ****" && \ apt-get update && \ apt-get install -y \ build-essential \ nodejs && \ echo "**** install runtime dependencies ****" && \ apt-get install -y \ git \ jq \ libatomic1 \ nano \ net-tools \ sudo && \ echo "**** install code-server ****" && \ if [ -z ${CODE_RELEASE+x} ]; then \ CODE_RELEASE=$(curl -sX GET https://api.github.com/repos/coder/code-server/releases/latest \ | awk '/tag_name/{print $4;exit}' FS='[""]' | sed 's|^v||'); \ fi && \ mkdir -p /app/code-server && \ curl -o \ /tmp/code-server.tar.gz -L \ "https://github.com/coder/code-server/releases/download/v${CODE_RELEASE}/code-server-${CODE_RELEASE}-linux-amd64.tar.gz" && \ tar xf /tmp/code-server.tar.gz -C \ /app/code-server --strip-components=1 && \ echo "**** patch 4.0.2 ****" && \ if [ "${CODE_RELEASE}" = "4.0.2" ] && [ "$(uname -m)" != "x86_64" ]; then \ cd /app/code-server && \ npm i --production @node-rs/argon2; \ fi && \ echo "**** clean up ****" && \ apt-get purge --auto-remove -y \ build-essential \ nodejs && \ apt-get clean && \ rm -rf \ /config/* \ /tmp/* \ /var/lib/apt/lists/* \ /var/tmp/* \ /etc/apt/sources.list.d/nodesource.list # add local files COPY /root / # ports and volumes EXPOSE 8443