nushell-plugins/nushell/docker/debian.Dockerfile
2025-06-27 02:33:44 +01:00

59 lines
2.1 KiB
Docker
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
ARG RELEASE_QUERY_API="https://api.github.com/repos/nushell/nushell/releases/latest"
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 - ${RELEASE_QUERY_API} \
| 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"]