FROM ubuntu LABEL maintainer="Coderaiser" LABEL org.opencontainers.image.source="https://github.com/coderaiser/cloudcmd" RUN mkdir -p /usr/src/cloudcmd WORKDIR /usr/src/cloudcmd COPY package.json /usr/src/cloudcmd/ ENV DEBIAN_FRONTEND=noninteractive \ PATH=/usr/local/src/cargo/bin:$PATH ARG GO_VERSION=1.21.2 ARG NVIM_VERSION=0.12.0 ARG UBUNTU_DEPS="libatomic1 curl wget git" RUN apt-get update && \ apt-get upgrade -y && \ apt-get autoremove && \ apt-get install -y ${UBUNTU_DEPS} less ffmpeg net-tools netcat-openbsd mc iputils-ping vim bat fzf locales sudo command-not-found ncdu aptitude htop btop hexyl && \ echo "> Update command-not-found database. Run 'sudo apt update' to populate it." && \ apt-get update && \ apt-get autoremove && \ apt-get clean && \ echo "> install neovim" && \ wget https://github.com/neovim/neovim/releases/download/v${NVIM_VERSION}/nvim-linux-x86_64.tar.gz && \ tar zxf nvim-linux-x86_64.tar.gz && \ mv -f nvim-linux-x86_64 /usr/local/src/nvim && \ ln -fs /usr/local/src/nvim/bin/nvim /usr/local/bin/nvim && \ echo "> install nvm" && \ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash && \ . ~/.nvm/nvm.sh && \ mv -f ~/.nvm /usr/local/src/nvm && \ nvm i node && \ echo "> install npm globals" && \ npm i wisdom nupdate version-io redrun superc8 supertape madrun redlint putout renamify-cli runny redfork -g && \ echo "> install bun" && \ curl -fsSL https://bun.sh/install | bash && \ mv -f ~/.bun /usr/local/src/bun && \ ln -fs /usr/local/src/bun/bin/bun /usr/local/bin/bun && \ echo "> install deno" && \ curl -fsSL https://deno.land/install.sh | sh && \ mv ~/.deno /usr/local/src/deno && \ ln -fs /usr/local/src/deno/bin/deno /usr/local/bin/deno && \ echo "> install golang" && \ curl -fsSL https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz -o go.tar.gz && \ tar -C /usr/local/src -xzf go.tar.gz && \ rm go.tar.gz && \ ln -fs /usr/local/src/go/bin/go /usr/local/bin/go && \ ln -fs /usr/local/src/go/bin/gofmt /usr/local/bin/gofmt && \ echo "> install rust" && \ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && \ mv -f ~/.cargo /usr/local/src/cargo && \ rustup default stable && \ mv -f ~/.rustup /usr/local/src/rustup && \ echo "> install gritty" && \ bun r gritty --omit dev && \ bun i gritty --omit dev && \ bun pm cache rm && \ echo "> setup git" && \ git config --global core.whitespace -trailing-space && \ git config --global pull.rebase true && \ echo "> configure bash" && \ echo "alias ls='ls --color=auto'" >> /etc/bash.bashrc && \ echo "alias buni='bun i --no-save'" >> /etc/bash.bashrc && \ echo "alias bat='batcat'" >> /etc/bash.bashrc && \ echo ". /usr/local/src/nvm/nvm.sh" >> /etc/bash.bashrc && \ echo 'PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "' >> /etc/bash.bashrc && \ echo "> setup inputrc" && \ echo "set editing-mode vi" >> /etc/inputrc && \ echo "TAB: menu-complete" >> /etc/inputrc && \ echo "set UTF-8" && \ echo " > configure languages" && \ echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \ echo "ru_RU.UTF-8 UTF-8" >> /etc/locale.gen && \ echo "uk_UA.UTF-8 UTF-8" >> /etc/locale.gen && \ echo "es_ES.UTF-8 UTF-8" >> /etc/locale.gen && \ echo "ja_JP.UTF-8 UTF-8" >> /etc/locale.gen && \ echo "el_GR.UTF-8 UTF-8" >> /etc/locale.gen && \ locale-gen COPY . /usr/src/cloudcmd WORKDIR / ENV cloudcmd_terminal=true \ cloudcmd_terminal_path=gritty \ cloudcmd_open=false \ PATH=node_modules/.bin:$PATH \ PATH=~/.local/bin:$PATH \ BUN_INSTALL_CACHE_DIR=/tmp/bun-cache \ DENO_DIR=/tmp/deno-cache \ LANG=en_US.UTF-8 \ LANGUAGE=en_US:en \ LC_ALL=en_US.UTF-8 \ TERM=xterm-256color EXPOSE 8000 ENTRYPOINT ["/usr/src/cloudcmd/bin/cloudcmd.js"]