mirror of
https://github.com/linuxserver/docker-mods.git
synced 2026-03-23 00:05:28 +08:00
docker: switch to multi-arch
This commit is contained in:
parent
f5302bea95
commit
ee8157e78c
4
.github/workflows/BuildImage.yml
vendored
4
.github/workflows/BuildImage.yml
vendored
@ -7,6 +7,7 @@ env:
|
||||
ENDPOINT: "linuxserver/mods" #don't modify
|
||||
BASEIMAGE: "universal" #replace
|
||||
MODNAME: "docker" #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. ****
|
||||
COMPOSE_RELEASE=$(curl -sX GET "https://api.github.com/repos/docker/compose/releases/latest" | awk '/tag_name/{print $4;exit}' FS='[""]' | sed 's|^v||')
|
||||
DOCKER_RELEASE=$(curl -sX GET "https://api.github.com/repos/moby/moby/releases/latest" | awk '/tag_name/{print $4;exit}' FS='[""]' | sed 's|^v||')
|
||||
@ -29,6 +31,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:
|
||||
@ -44,4 +47,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 }}
|
||||
|
||||
84
Dockerfile
84
Dockerfile
@ -1,11 +1,11 @@
|
||||
# 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
|
||||
|
||||
RUN \
|
||||
echo "**** retrieve latest version ****" && \
|
||||
echo "**** retrieve latest docker and compose versions ****" && \
|
||||
if [[ -z "${MOD_VERSION+x}" ]]; then \
|
||||
DOCKER_RELEASE=$(curl -sX GET "https://api.github.com/repos/moby/moby/releases/latest" \
|
||||
| awk '/tag_name/{print $4;exit}' FS='[""]' \
|
||||
@ -17,57 +17,57 @@ RUN \
|
||||
DOCKER_RELEASE=$(echo "${MOD_VERSION}" | sed 's|-.*||'); \
|
||||
COMPOSE_RELEASE=$(echo "${MOD_VERSION}" | sed 's|.*-||'); \
|
||||
fi && \
|
||||
echo "**** grab docker ****" && \
|
||||
mkdir -p \
|
||||
/root-layer/docker-bins \
|
||||
/tmp/docker_x86_64 \
|
||||
/tmp/docker_aarch64 && \
|
||||
curl -fo \
|
||||
/tmp/docker_x86_64.tgz -L \
|
||||
"https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_RELEASE}.tgz" && \
|
||||
tar xf \
|
||||
/tmp/docker_x86_64.tgz -C \
|
||||
/tmp/docker_x86_64 --strip-components=1 && \
|
||||
cp /tmp/docker_x86_64/docker /root-layer/docker-bins/docker_x86_64 && \
|
||||
curl -fo \
|
||||
/tmp/docker_aarch64.tgz -L \
|
||||
"https://download.docker.com/linux/static/stable/aarch64/docker-${DOCKER_RELEASE}.tgz" && \
|
||||
tar xf \
|
||||
/tmp/docker_aarch64.tgz -C \
|
||||
/tmp/docker_aarch64 --strip-components=1 && \
|
||||
cp /tmp/docker_aarch64/docker /root-layer/docker-bins/docker_aarch64 && \
|
||||
echo "**** grab compose ****" && \
|
||||
curl -fo \
|
||||
/root-layer/docker-bins/docker-compose_x86_64 -L \
|
||||
"https://github.com/docker/compose/releases/download/v${COMPOSE_RELEASE}/docker-compose-linux-x86_64" && \
|
||||
curl -fo \
|
||||
/root-layer/docker-bins/docker-compose_aarch64 -L \
|
||||
"https://github.com/docker/compose/releases/download/v${COMPOSE_RELEASE}/docker-compose-linux-aarch64" && \
|
||||
echo "**** retrieve latest compose switch version ****" && \
|
||||
if [ -z ${SWITCH_RELEASE+x} ]; then \
|
||||
SWITCH_RELEASE=$(curl -sX GET "https://api.github.com/repos/docker/compose-switch/releases/latest" \
|
||||
| awk '/tag_name/{print $4;exit}' FS='[""]' \
|
||||
| sed 's|^v||'); \
|
||||
fi && \
|
||||
echo "**** grab compose switch ****" && \
|
||||
curl -fo \
|
||||
/root-layer/docker-bins/compose-switch_x86_64 -L \
|
||||
"https://github.com/docker/compose-switch/releases/download/v${SWITCH_RELEASE}/docker-compose-linux-amd64" && \
|
||||
curl -fo \
|
||||
/root-layer/docker-bins/compose-switch_aarch64 -L \
|
||||
"https://github.com/docker/compose-switch/releases/download/v${SWITCH_RELEASE}/docker-compose-linux-arm64" && \
|
||||
echo "**** retrieve latest buildx version ****" && \
|
||||
if [ -z ${BUILDX_RELEASE+x} ]; then \
|
||||
BUILDX_RELEASE=$(curl -sX GET "https://api.github.com/repos/docker/buildx/releases/latest" \
|
||||
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
|
||||
fi && \
|
||||
echo "**** grab buildx plugin ****" && \
|
||||
curl -fo \
|
||||
/root-layer/docker-bins/docker-buildx_x86_64 -L \
|
||||
"https://github.com/docker/buildx/releases/download/${BUILDX_RELEASE}/buildx-${BUILDX_RELEASE}.linux-amd64" && \
|
||||
curl -fo \
|
||||
/root-layer/docker-bins/docker-buildx_aarch64 -L \
|
||||
"https://github.com/docker/buildx/releases/download/${BUILDX_RELEASE}/buildx-${BUILDX_RELEASE}.linux-arm64" && \
|
||||
mkdir -p \
|
||||
/root-layer/docker-bins \
|
||||
/tmp/docker && \
|
||||
if [[ $(uname -m) == "x86_64" ]]; then \
|
||||
echo "**** grab x86_64 tarballs and binaries ****" && \
|
||||
curl -fo \
|
||||
/tmp/docker.tgz -L \
|
||||
"https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_RELEASE}.tgz" && \
|
||||
tar xf \
|
||||
/tmp/docker.tgz -C \
|
||||
/tmp/docker --strip-components=1 && \
|
||||
cp /tmp/docker/docker /root-layer/docker-bins/docker && \
|
||||
curl -fo \
|
||||
/root-layer/docker-bins/docker-compose -L \
|
||||
"https://github.com/docker/compose/releases/download/v${COMPOSE_RELEASE}/docker-compose-linux-x86_64" && \
|
||||
curl -fo \
|
||||
/root-layer/docker-bins/compose-switch -L \
|
||||
"https://github.com/docker/compose-switch/releases/download/v${SWITCH_RELEASE}/docker-compose-linux-amd64" && \
|
||||
curl -fo \
|
||||
/root-layer/docker-bins/docker-buildx -L \
|
||||
"https://github.com/docker/buildx/releases/download/${BUILDX_RELEASE}/buildx-${BUILDX_RELEASE}.linux-amd64"; \
|
||||
elif [[ $(uname -m) == "aarch64" ]]; then \
|
||||
echo "**** grab aarch64 tarballs and binaries ****" && \
|
||||
curl -fo \
|
||||
/tmp/docker.tgz -L \
|
||||
"https://download.docker.com/linux/static/stable/aarch64/docker-${DOCKER_RELEASE}.tgz" && \
|
||||
tar xf \
|
||||
/tmp/docker.tgz -C \
|
||||
/tmp/docker --strip-components=1 && \
|
||||
cp /tmp/docker/docker /root-layer/docker-bins/docker && \
|
||||
curl -fo \
|
||||
/root-layer/docker-bins/docker-compose -L \
|
||||
"https://github.com/docker/compose/releases/download/v${COMPOSE_RELEASE}/docker-compose-linux-aarch64" && \
|
||||
curl -fo \
|
||||
/root-layer/docker-bins/compose-switch -L \
|
||||
"https://github.com/docker/compose-switch/releases/download/v${SWITCH_RELEASE}/docker-compose-linux-arm64" && \
|
||||
curl -fo \
|
||||
/root-layer/docker-bins/docker-buildx -L \
|
||||
"https://github.com/docker/buildx/releases/download/${BUILDX_RELEASE}/buildx-${BUILDX_RELEASE}.linux-arm64"; \
|
||||
fi && \
|
||||
chmod +x /root-layer/docker-bins/* && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
|
||||
@ -9,10 +9,10 @@ fi
|
||||
if [[ -d "/docker-bins" ]] ; then
|
||||
echo "Copying over docker and docker-compose binaries"
|
||||
mkdir -p /usr/local/lib/docker/cli-plugins
|
||||
mv "/docker-bins/docker-compose_${ARCH}" /usr/local/lib/docker/cli-plugins/docker-compose
|
||||
mv "/docker-bins/docker-buildx_${ARCH}" /usr/local/lib/docker/cli-plugins/docker-buildx
|
||||
mv "/docker-bins/docker_${ARCH}" /usr/local/bin/docker
|
||||
mv "/docker-bins/compose-switch_${ARCH}" /usr/local/bin/docker-compose
|
||||
mv "/docker-bins/docker-compose" /usr/local/lib/docker/cli-plugins/docker-compose
|
||||
mv "/docker-bins/docker-buildx" /usr/local/lib/docker/cli-plugins/docker-buildx
|
||||
mv "/docker-bins/docker" /usr/local/bin/docker
|
||||
mv "/docker-bins/compose-switch" /usr/local/bin/docker-compose
|
||||
rm -rf /docker-bins
|
||||
else
|
||||
echo "**** docker and docker-compose already installed, skipping ****"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user