From ddd67ce01dec055e44a2809ba33fc4dceafc2d62 Mon Sep 17 00:00:00 2001 From: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com> Date: Sat, 24 Aug 2024 22:39:48 -0400 Subject: [PATCH] build(docker): update dockerfiles (#3085) --- docker/archlinux.dockerfile | 37 +++++++++++++++++-------------- docker/clion-toolchain.dockerfile | 30 +++++++++++-------------- docker/debian-bookworm.dockerfile | 6 ++--- docker/fedora-39.dockerfile | 6 ++--- docker/fedora-40.dockerfile | 6 ++--- docker/ubuntu-22.04.dockerfile | 6 ++--- docker/ubuntu-24.04.dockerfile | 6 ++--- 7 files changed, 48 insertions(+), 49 deletions(-) diff --git a/docker/archlinux.dockerfile b/docker/archlinux.dockerfile index 5edb4416..f628ac07 100644 --- a/docker/archlinux.dockerfile +++ b/docker/archlinux.dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1.4 +# syntax=docker/dockerfile:1 # artifacts: true # platforms: linux/amd64 # archlinux does not have an arm64 base image @@ -17,7 +17,7 @@ pacman -Syu --disable-download-timeout --noconfirm pacman -Scc --noconfirm _DEPS -FROM sunshine-base as sunshine-build +FROM sunshine-base AS sunshine-build ARG BRANCH ARG BUILD_VERSION @@ -31,18 +31,19 @@ ENV COMMIT=${COMMIT} SHELL ["/bin/bash", "-o", "pipefail", "-c"] -# Setup builder user, arch prevents running makepkg as root -RUN useradd -m builder && \ - echo 'builder ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers - -# patch the build flags # hadolint ignore=SC2016 -RUN sed -i 's,#MAKEFLAGS="-j2",MAKEFLAGS="-j$(nproc)",g' /etc/makepkg.conf - -# install dependencies -RUN <<_DEPS +RUN <<_SETUP #!/bin/bash set -e + +# Setup builder user, arch prevents running makepkg as root +useradd -m builder +echo 'builder ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers + +# patch the build flags +sed -i 's,#MAKEFLAGS="-j2",MAKEFLAGS="-j$(nproc)",g' /etc/makepkg.conf + +# install dependencies pacman -Syu --disable-download-timeout --needed --noconfirm \ base-devel \ cmake \ @@ -51,7 +52,7 @@ pacman -Syu --disable-download-timeout --needed --noconfirm \ namcap \ xorg-server-xvfb pacman -Scc --noconfirm -_DEPS +_SETUP # Setup builder user USER builder @@ -84,9 +85,11 @@ cmake \ _MAKE WORKDIR /build/sunshine/pkg -RUN mv /build/sunshine/build/PKGBUILD . -RUN mv /build/sunshine/build/sunshine.install . -RUN makepkg --printsrcinfo > .SRCINFO +RUN <<_PACKAGE +mv /build/sunshine/build/PKGBUILD . +mv /build/sunshine/build/sunshine.install . +makepkg --printsrcinfo > .SRCINFO +_PACKAGE # create a PKGBUILD archive USER root @@ -111,12 +114,12 @@ rm -f /build/sunshine/pkg/sunshine-debug*.pkg.tar.zst ls -a _PKGBUILD -FROM scratch as artifacts +FROM scratch AS artifacts COPY --link --from=sunshine-build /build/sunshine/pkg/sunshine*.pkg.tar.zst /sunshine.pkg.tar.zst COPY --link --from=sunshine-build /build/sunshine/sunshine.pkg.tar.gz /sunshine.pkg.tar.gz -FROM sunshine-base as sunshine +FROM sunshine-base AS sunshine COPY --link --from=artifacts /sunshine.pkg.tar.zst / diff --git a/docker/clion-toolchain.dockerfile b/docker/clion-toolchain.dockerfile index 647a4bed..6acd82ff 100644 --- a/docker/clion-toolchain.dockerfile +++ b/docker/clion-toolchain.dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1.4 +# syntax=docker/dockerfile:1 # artifacts: false # platforms: linux/amd64 # platforms_pr: linux/amd64 @@ -9,7 +9,7 @@ FROM ${BASE}:${TAG} AS toolchain-base ENV DEBIAN_FRONTEND=noninteractive -FROM toolchain-base as toolchain +FROM toolchain-base AS toolchain ARG TARGETPLATFORM RUN echo "target_platform: ${TARGETPLATFORM}" @@ -17,7 +17,9 @@ RUN echo "target_platform: ${TARGETPLATFORM}" ENV DISPLAY=:0 SHELL ["/bin/bash", "-o", "pipefail", "-c"] + # install dependencies +# hadolint ignore=SC1091 RUN <<_DEPS #!/bin/bash set -e @@ -59,20 +61,14 @@ apt-get install -y --no-install-recommends \ xvfb apt-get clean rm -rf /var/lib/apt/lists/* -_DEPS -#Install Node -# hadolint ignore=SC1091 -RUN <<_INSTALL_NODE -#!/bin/bash -set -e -node_version="20.9.0" -wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash +# Install Node +wget --max-redirect=0 -qO- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash source "$HOME/.nvm/nvm.sh" -nvm install "$node_version" -nvm use "$node_version" -nvm alias default "$node_version" -_INSTALL_NODE +nvm install node +nvm use node +nvm alias default node +_DEPS # install cuda WORKDIR /build/cuda @@ -110,13 +106,13 @@ else exec "\$@" fi EOF -_ENTRYPOINT # Make the script executable -RUN chmod +x /entrypoint.sh +chmod +x /entrypoint.sh # Note about CLion -RUN echo "ATTENTION: CLion will override the entrypoint, you can disable this in the toolchain settings" +echo "ATTENTION: CLion will override the entrypoint, you can disable this in the toolchain settings" +_ENTRYPOINT # Use the shell script as the entrypoint ENTRYPOINT ["/entrypoint.sh"] diff --git a/docker/debian-bookworm.dockerfile b/docker/debian-bookworm.dockerfile index b98bb96d..84edc4c9 100644 --- a/docker/debian-bookworm.dockerfile +++ b/docker/debian-bookworm.dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1.4 +# syntax=docker/dockerfile:1 # artifacts: true # platforms: linux/amd64,linux/arm64/v8 # platforms_pr: linux/amd64 @@ -9,7 +9,7 @@ FROM ${BASE}:${TAG} AS sunshine-base ENV DEBIAN_FRONTEND=noninteractive -FROM sunshine-base as sunshine-build +FROM sunshine-base AS sunshine-build ARG BRANCH ARG BUILD_VERSION @@ -57,7 +57,7 @@ ARG TAG ARG TARGETARCH COPY --link --from=sunshine-build /build/sunshine/build/cpack_artifacts/Sunshine.deb /sunshine-${BASE}-${TAG}-${TARGETARCH}.deb -FROM sunshine-base as sunshine +FROM sunshine-base AS sunshine # copy deb from builder COPY --link --from=artifacts /sunshine*.deb /sunshine.deb diff --git a/docker/fedora-39.dockerfile b/docker/fedora-39.dockerfile index 87d2eb29..579eec9e 100644 --- a/docker/fedora-39.dockerfile +++ b/docker/fedora-39.dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1.4 +# syntax=docker/dockerfile:1 # artifacts: true # platforms: linux/amd64 # platforms_pr: linux/amd64 @@ -7,7 +7,7 @@ ARG BASE=fedora ARG TAG=39 FROM ${BASE}:${TAG} AS sunshine-base -FROM sunshine-base as sunshine-build +FROM sunshine-base AS sunshine-build ARG BRANCH ARG BUILD_VERSION @@ -55,7 +55,7 @@ ARG TAG ARG TARGETARCH COPY --link --from=sunshine-build /build/sunshine/build/cpack_artifacts/Sunshine.rpm /sunshine-${BASE}-${TAG}-${TARGETARCH}.rpm -FROM sunshine-base as sunshine +FROM sunshine-base AS sunshine # copy deb from builder COPY --link --from=artifacts /sunshine*.rpm /sunshine.rpm diff --git a/docker/fedora-40.dockerfile b/docker/fedora-40.dockerfile index 61c6cced..fc6362d4 100644 --- a/docker/fedora-40.dockerfile +++ b/docker/fedora-40.dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1.4 +# syntax=docker/dockerfile:1 # artifacts: true # platforms: linux/amd64 # platforms_pr: linux/amd64 @@ -7,7 +7,7 @@ ARG BASE=fedora ARG TAG=40 FROM ${BASE}:${TAG} AS sunshine-base -FROM sunshine-base as sunshine-build +FROM sunshine-base AS sunshine-build ARG BRANCH ARG BUILD_VERSION @@ -55,7 +55,7 @@ ARG TAG ARG TARGETARCH COPY --link --from=sunshine-build /build/sunshine/build/cpack_artifacts/Sunshine.rpm /sunshine-${BASE}-${TAG}-${TARGETARCH}.rpm -FROM sunshine-base as sunshine +FROM sunshine-base AS sunshine # copy deb from builder COPY --link --from=artifacts /sunshine*.rpm /sunshine.rpm diff --git a/docker/ubuntu-22.04.dockerfile b/docker/ubuntu-22.04.dockerfile index 46952532..24ceda2b 100644 --- a/docker/ubuntu-22.04.dockerfile +++ b/docker/ubuntu-22.04.dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1.4 +# syntax=docker/dockerfile:1 # artifacts: true # platforms: linux/amd64,linux/arm64/v8 # platforms_pr: linux/amd64 @@ -9,7 +9,7 @@ FROM ${BASE}:${TAG} AS sunshine-base ENV DEBIAN_FRONTEND=noninteractive -FROM sunshine-base as sunshine-build +FROM sunshine-base AS sunshine-build ARG BRANCH ARG BUILD_VERSION @@ -57,7 +57,7 @@ ARG TAG ARG TARGETARCH COPY --link --from=sunshine-build /build/sunshine/build/cpack_artifacts/Sunshine.deb /sunshine-${BASE}-${TAG}-${TARGETARCH}.deb -FROM sunshine-base as sunshine +FROM sunshine-base AS sunshine # copy deb from builder COPY --link --from=artifacts /sunshine*.deb /sunshine.deb diff --git a/docker/ubuntu-24.04.dockerfile b/docker/ubuntu-24.04.dockerfile index 1decc62f..1b7c0d6e 100644 --- a/docker/ubuntu-24.04.dockerfile +++ b/docker/ubuntu-24.04.dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1.4 +# syntax=docker/dockerfile:1 # artifacts: true # platforms: linux/amd64,linux/arm64/v8 # platforms_pr: linux/amd64 @@ -9,7 +9,7 @@ FROM ${BASE}:${TAG} AS sunshine-base ENV DEBIAN_FRONTEND=noninteractive -FROM sunshine-base as sunshine-build +FROM sunshine-base AS sunshine-build ARG BRANCH ARG BUILD_VERSION @@ -57,7 +57,7 @@ ARG TAG ARG TARGETARCH COPY --link --from=sunshine-build /build/sunshine/build/cpack_artifacts/Sunshine.deb /sunshine-${BASE}-${TAG}-${TARGETARCH}.deb -FROM sunshine-base as sunshine +FROM sunshine-base AS sunshine # copy deb from builder COPY --link --from=artifacts /sunshine*.deb /sunshine.deb