From 8c2e12ad79801c98d1997f54a4b71e6ac3a6165f Mon Sep 17 00:00:00 2001 From: Justin Ma Date: Tue, 29 Oct 2024 19:32:09 +0800 Subject: [PATCH] Update the dockerfile for alpine image (#14191) # Description Update the dockerfile for alpine image, related https://github.com/nushell/nushell/issues/14171 : 1. Add armv7 arch support 2. Add more opencontainers labels, see: https://github.com/opencontainers/image-spec/blob/main/annotations.md#pre-defined-annotation-keys # User-Facing Changes - Nushell docker images will be provided for each official release - There will be a `nushell:nightly` tag for the latest nightly release # After Submitting 1. The workflow that build the images will be provided in [nushell/nightly](https://github.com/nushell/nightly) repo later 2. Alpine image will be provided as the default, we may also add Debian images later --- docker/Dockerfile | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index aab1e854bc..d20ec63d91 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,18 +1,30 @@ # syntax=docker/dockerfile:latest # Git: git version 2.30.2 -# /etc/os-release: Alpine Linux v3.16 +# /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/alpine-nu:latest, nushell +# Build cmd: docker build --no-cache . -t nushell:latest +# Other tags: nushell:latest-alpine, nushell FROM alpine -LABEL maintainer=nushell - 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 echo '/usr/bin/nu' >> /etc/shells \ && adduser -D -s /usr/bin/nu nushell \ && mkdir -p /home/nushell/.config/nushell/ \ @@ -22,9 +34,10 @@ RUN echo '/usr/bin/nu' >> /etc/shells \ | cut -d '"' -f 4 \ | grep ${ARCH}-unknown-linux-musl \ | xargs -I{} wget {} \ - && tar -xzf nu* \ - && cd nu*-musl \ - && mv nu* /usr/bin \ + && 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