diff --git a/docker/debian.Dockerfile b/docker/debian.Dockerfile new file mode 100644 index 0000000000..9a510453ef --- /dev/null +++ b/docker/debian.Dockerfile @@ -0,0 +1,56 @@ +# syntax=docker/dockerfile:latest + +# Git: git version 2.46.0 +# /etc/os-release: Debian GNU/Linux 12 (bookworm) +# Kernel: Linux 8aa16b289a9f 5.15.153.1-microsoft-standard-WSL2 #1 SMP Fri Mar 29 23:14:13 UTC 2024 x86_64 GNU/Linux +# Build cmd: docker build --no-cache --file debian.Dockerfile . -t nushell:latest +# Other tags: nushell:latest-debian +FROM debian:bookworm-slim + +ARG TARGETARCH +ARG ARCH=${TARGETARCH/arm64/aarch64} +ARG ARCH=${ARCH/arm/armv7} +ARG ARCH=${ARCH/amd64/x86_64} + +ARG BUILD_REF +ARG BUILD_DATE +LABEL maintainer="The Nushell Project Developers" \ + org.opencontainers.image.licenses="MIT" \ + org.opencontainers.image.title="Nushell" \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REF \ + org.opencontainers.image.authors="The Nushell Project Developers" \ + org.opencontainers.image.vendor="Nushell Project" \ + org.opencontainers.image.description="A new type of shell" \ + org.opencontainers.image.source="https://github.com/nushell/nushell" \ + org.opencontainers.image.documentation="https://www.nushell.sh/book/" + +RUN apt update && apt install -y wget \ + && cd /tmp \ + && wget -qO - https://api.github.com/repos/nushell/nushell/releases/latest \ + | grep browser_download_url \ + | cut -d '"' -f 4 \ + | grep ${ARCH}-unknown-linux-gnu \ + | xargs -I{} wget -q {} \ + && mkdir nu-latest && tar xvf nu-*.tar.gz --directory=nu-latest \ + && cp -aR nu-latest/**/* /usr/bin/ \ + # Setup nushell user + && echo '/usr/bin/nu' >> /etc/shells \ + && useradd -p '' -s /usr/bin/nu nushell \ + && mkdir -p /home/nushell/.config/nushell/ \ + # Setup default config file for nushell + && cd /home/nushell/.config/nushell \ + && chmod +x /usr/bin/nu \ + && chown -R nushell:nushell /home/nushell/.config/nushell \ + # Reset Nushell config to default + && su -c 'config reset -w' nushell \ + && ls /usr/bin/nu_plugin* \ + | xargs -I{} su -c 'plugin add {}' nushell \ + && rm -rf /tmp/* \ + && rm -rf /var/lib/apt/lists/* + +USER nushell + +WORKDIR /home/nushell + +ENTRYPOINT ["nu"]