diff --git a/.github/workflows/BuildImage.yml b/.github/workflows/BuildImage.yml index 3988246b..f814cf2d 100644 --- a/.github/workflows/BuildImage.yml +++ b/.github/workflows/BuildImage.yml @@ -7,6 +7,7 @@ env: ENDPOINT: "linuxserver/mods" #don't modify BASEIMAGE: "code-server" #replace MODNAME: "powershell" #replace + MULTI_ARCH: "true" #set to true if needed jobs: set-vars: @@ -19,6 +20,7 @@ jobs: echo "ENDPOINT=${{ env.ENDPOINT }}" >> $GITHUB_OUTPUT echo "BASEIMAGE=${{ env.BASEIMAGE }}" >> $GITHUB_OUTPUT echo "MODNAME=${{ env.MODNAME }}" >> $GITHUB_OUTPUT + echo "MULTI_ARCH=${{ env.MULTI_ARCH }}" >> $GITHUB_OUTPUT # **** If the mod needs to be versioned, set the versioning logic below. Otherwise leave as is. **** MOD_VERSION=$(curl -Ls -o /dev/null -w %{url_effective} https://aka.ms/powershell-release?tag=stable | sed 's|.*tag/v||g') echo "MOD_VERSION=${MOD_VERSION}" >> $GITHUB_OUTPUT @@ -27,6 +29,7 @@ jobs: ENDPOINT: ${{ steps.outputs.outputs.ENDPOINT }} BASEIMAGE: ${{ steps.outputs.outputs.BASEIMAGE }} MODNAME: ${{ steps.outputs.outputs.MODNAME }} + MULTI_ARCH: ${{ steps.outputs.outputs.MULTI_ARCH }} MOD_VERSION: ${{ steps.outputs.outputs.MOD_VERSION }} build: @@ -42,4 +45,5 @@ jobs: ENDPOINT: ${{ needs.set-vars.outputs.ENDPOINT }} BASEIMAGE: ${{ needs.set-vars.outputs.BASEIMAGE }} MODNAME: ${{ needs.set-vars.outputs.MODNAME }} + MULTI_ARCH: ${{ needs.set-vars.outputs.MULTI_ARCH }} MOD_VERSION: ${{ needs.set-vars.outputs.MOD_VERSION }} diff --git a/Dockerfile b/Dockerfile index 86822913..63a3391e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM ghcr.io/linuxserver/baseimage-alpine:3.17 as buildstage +FROM ghcr.io/linuxserver/baseimage-alpine:3.19 as buildstage ARG MOD_VERSION @@ -10,20 +10,20 @@ RUN \ | sed 's|.*tag/v||g'); \ fi && \ mkdir -p /root-layer/powershell && \ - curl -o \ - /root-layer/powershell/powershell_x86_64.tar.gz -L \ - "https://github.com/PowerShell/PowerShell/releases/download/v${MOD_VERSION}/powershell-${MOD_VERSION}-linux-x64.tar.gz" && \ - curl -o \ - /root-layer/powershell/powershell_armv7l.tar.gz -L \ - "https://github.com/PowerShell/PowerShell/releases/download/v${MOD_VERSION}/powershell-${MOD_VERSION}-linux-arm32.tar.gz" && \ - curl -o \ - /root-layer/powershell/powershell_aarch64.tar.gz -L \ - "https://github.com/PowerShell/PowerShell/releases/download/v${MOD_VERSION}/powershell-${MOD_VERSION}-linux-arm64.tar.gz" && \ - echo "******** run basic test to validate tarballs *********" && \ - for i in x86_64 armv7l aarch64; do \ - mkdir -p "/tmp/${i}"; \ - tar xzf "/root-layer/powershell/powershell_${i}.tar.gz" -C "/tmp/${i}"; \ - done + if [[ $(uname -m) == "x86_64" ]]; then \ + echo "Downloading x86_64 tarball" && \ + curl -o \ + /root-layer/powershell/powershell.tar.gz -L \ + "https://github.com/PowerShell/PowerShell/releases/download/v${MOD_VERSION}/powershell-${MOD_VERSION}-linux-x64.tar.gz"; \ + elif [[ $(uname -m) == "aarch64" ]]; then \ + echo "Downloading aarch64 tarball" && \ + curl -o \ + /root-layer/powershell/powershell.tar.gz -L \ + "https://github.com/PowerShell/PowerShell/releases/download/v${MOD_VERSION}/powershell-${MOD_VERSION}-linux-arm64.tar.gz"; \ + fi && \ + echo "******** run basic test to validate tarball *********" && \ + mkdir -p /tmp/powershell && \ + tar xzf /root-layer/powershell/powershell.tar.gz -C /tmp/powershell COPY root/ /root-layer/ diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-powershell-add-package/run b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-powershell-add-package/run index f106dc2b..85a3bedc 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-powershell-add-package/run +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-powershell-add-package/run @@ -1,9 +1,8 @@ #!/usr/bin/with-contenv bash -ARCH=$(uname -m) source /etc/lsb-release -if [ -f "/powershell/powershell_${ARCH}.tar.gz" ]; then +if [ -f "/powershell/powershell.tar.gz" ]; then echo "Installing PowerShell" if [ "${DISTRIB_CODENAME}" == "bionic" ]; then echo "\ @@ -18,11 +17,9 @@ if [ -f "/powershell/powershell_${ARCH}.tar.gz" ]; then libicu70 \ libunwind8" >> /mod-repo-packages-to-install.list fi - tar xf "/powershell/powershell_${ARCH}.tar.gz" -C /powershell + tar xf "/powershell/powershell.tar.gz" -C /powershell rm -rf \ - /powershell/powershell_x86_64.tar.gz \ - /powershell/powershell_armv7l.tar.gz \ - /powershell/powershell_aarch64.tar.gz + /powershell/powershell.tar.gz ln -s /powershell/pwsh /usr/bin/pwsh else echo "PowerShell already installed, skipping"