FROM debian:stable-slim ARG TARGETOS ARG TARGETARCH # update package manager RUN apt-get update -y && \ apt-get upgrade -y && \ apt-get dist-upgrade -y && \ apt-get -y autoremove && \ apt-get clean # UTF-8 support RUN apt-get install -y coreutils locales && \ sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \ locale-gen && \ dpkg-reconfigure --frontend=noninteractive locales && \ update-locale LANG=en_US.UTF-8 # set environment variables ENV LC_ALL=en_US.UTF-8 ENV LANG=en_US.UTF-8 ENV LANGUAGE=en_US.UTF-8 # install required packages RUN apt-get install -y \ make \ git \ curl \ jq RUN mkdir -p /tmp/kitchen WORKDIR /tmp/kitchen # install the latest golang RUN ARCH=$(echo ${TARGETARCH} | sed -r 's/^arm$/armv6l/g') && \ curl -fsSL "https://go.dev/dl/$(curl -s 'https://go.dev/VERSION?m=text' | head -1).${TARGETOS}-${ARCH}.tar.gz" -o go.tar.gz && \ tar -xzf go.tar.gz && \ rm go.tar.gz && \ git clone https://github.com/LordOverlord/ctop.git && \ cd /tmp/kitchen/ctop && \ /tmp/kitchen/go/bin/go build && \ mkdir -p /usr/local/bin && \ cp ctop /usr/local/bin/ctop && \ ls -l /usr/local/bin/ctop # install ctop #WORKDIR /tmp/kitchen #RUN curl -sL "https://api.github.com/repos/LordOverlord/ctop/releases/latest" | \ # jq -r '.assets[] | select (.name | contains("linux-arm64")) | .browser_download_url' | \ # xargs curl -sLo file && \ # mv file /usr/local/bin/ctop && \ # chmod +x /usr/local/bin/ctop && \ # ls -l /usr/local/bin/ctop #RUN https://github.com/LordOverlord/ctop.git && \ # cd ctop && \ # make build && \ # cp ctop /usr/local/bin/ && \ # ls -l /usr/local/bin/ctop # isntall ttyd WORKDIR /tmp/kitchen RUN curl -sL "https://api.github.com/repos/tsl0922/ttyd/releases/latest" | \ jq -r '.assets[] | select (.name | contains("aarch64")) | .browser_download_url' | \ xargs curl -sLo file && \ mv file /usr/local/bin/ttyd && \ chmod +x /usr/local/bin/ttyd && \ ls -l /usr/local/bin/ttyd # pivot out and remove the kitchen WORKDIR / RUN rm -rf /tmp/kitchen # clean up RUN apt-get purge -y \ jq \ make \ git RUN apt-get -y autoremove # health check HEALTHCHECK --interval=1m --timeout=10s --retries=3 --start-period=1m \ CMD curl -f http://127.0.0.1:7681/ || exit 1 EXPOSE 7681 ENTRYPOINT /usr/local/bin/ttyd -W /usr/local/bin/ctop