Simplify the Dockerfile (#13974)

<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx

you can also mention related issues, PRs or discussions!
-->

# Description

Works for `docker build` and `docker buildx build`
For more detail about the new Dockerfile syntax:
https://www.docker.com/blog/new-dockerfile-capabilities-v1-7-0/
This commit is contained in:
Justin Ma 2024-10-01 19:28:14 +08:00 committed by GitHub
parent b2d0d9cf13
commit 02804ab537
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,3 +1,5 @@
# syntax=docker/dockerfile:latest
# Git: git version 2.30.2 # Git: git version 2.30.2
# /etc/os-release: Alpine Linux v3.16 # /etc/os-release: Alpine Linux v3.16
# Kernel: Linux ca3abedc4fb1 5.17.15-76051715-generic #202206141358~1655919116~22.04~1db9e34 SMP PREEMPT Wed Jun 22 19 x86_64 Linux # Kernel: Linux ca3abedc4fb1 5.17.15-76051715-generic #202206141358~1655919116~22.04~1db9e34 SMP PREEMPT Wed Jun 22 19 x86_64 Linux
@ -8,25 +10,17 @@ FROM alpine
LABEL maintainer=nushell LABEL maintainer=nushell
ARG TARGETARCH ARG TARGETARCH
ARG ARCH=${TARGETARCH/arm64/aarch64}
ARG ARCH=${ARCH/amd64/x86_64}
RUN set -eux; \ RUN echo '/usr/bin/nu' >> /etc/shells \
if [ "${TARGETARCH}" = "amd64" ] || [ "${TARGETARCH}" = "x86_64" ]; then \
echo "Downloading x86_64 binary for ${TARGETARCH}..."; \
arch_path="x86_64"; \
elif [ "${TARGETARCH}" = "arm64" ] || [ "${TARGETARCH}" = "aarch64"]; then \
echo "Downloading aarch64 binary for ${TARGETARCH}..."; \
arch_path="aarch64"; \
else \
arch_path=""; \
fi; \
echo '/usr/bin/nu' >> /etc/shells \
&& adduser -D -s /usr/bin/nu nushell \ && adduser -D -s /usr/bin/nu nushell \
&& mkdir -p /home/nushell/.config/nushell/ \ && mkdir -p /home/nushell/.config/nushell/ \
&& cd /tmp \ && cd /tmp \
&& wget -qO - https://api.github.com/repos/nushell/nushell/releases/latest \ && wget -qO - https://api.github.com/repos/nushell/nushell/releases/latest \
| grep browser_download_url \ | grep browser_download_url \
| grep "${arch_path}.*.musl.tar.gz" \ | cut -d '"' -f 4 \
| cut -f4 -d '"' \ | grep ${ARCH}-unknown-linux-musl \
| xargs -I{} wget {} \ | xargs -I{} wget {} \
&& tar -xzf nu* \ && tar -xzf nu* \
&& cd nu*-musl \ && cd nu*-musl \