2025-06-27 02:33:44 +01:00

56 lines
2.0 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.30.2
# /etc/os-release: Alpine Linux v3.20
# Kernel: Linux ca3abedc4fb1 5.17.15-76051715-generic #202206141358~1655919116~22.04~1db9e34 SMP PREEMPT Wed Jun 22 19 x86_64 Linux
# Build cmd: docker build --no-cache . -t nushell:latest
# Other tags: nushell:latest-alpine, nushell
FROM alpine
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 echo '/usr/bin/nu' >> /etc/shells \
&& adduser -D -s /usr/bin/nu nushell \
&& mkdir -p /home/nushell/.config/nushell/ \
&& cd /tmp \
&& wget -qO - ${RELEASE_QUERY_API} \
| grep browser_download_url \
| cut -d '"' -f 4 \
| grep ${ARCH}-unknown-linux-musl \
| xargs -I{} wget {} \
&& mkdir nu-latest && tar xvf nu-*.tar.gz --directory=nu-latest \
&& cp -aR nu-latest/**/* /usr/bin/ \
# 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/*
USER nushell
WORKDIR /home/nushell
ENTRYPOINT ["nu"]