mirror of
https://github.com/elseif/MikroTikPatch
synced 2026-07-17 10:39:40 +00:00
modified: .github/workflows/build_docker.yml
This commit is contained in:
parent
54c562f054
commit
ae84c4ecde
57
.github/workflows/build_docker.yml
vendored
57
.github/workflows/build_docker.yml
vendored
@ -28,6 +28,7 @@ jobs:
|
|||||||
CHANNEL: ${{ inputs.channel }}
|
CHANNEL: ${{ inputs.channel }}
|
||||||
VERSION: ${{ inputs.version }}
|
VERSION: ${{ inputs.version }}
|
||||||
IMAGE: "ghcr.io/${{ github.repository_owner }}/chr"
|
IMAGE: "ghcr.io/${{ github.repository_owner }}/chr"
|
||||||
|
LATEST_TAG: ""
|
||||||
steps:
|
steps:
|
||||||
- name: Check Version
|
- name: Check Version
|
||||||
id: version
|
id: version
|
||||||
@ -38,11 +39,10 @@ jobs:
|
|||||||
NEWEST=$(wget -nv -O - "https://upgrade.mikrotik.ltd/routeros/NEWESTa7.$CHANNEL?t=$TIMESTAMP")
|
NEWEST=$(wget -nv -O - "https://upgrade.mikrotik.ltd/routeros/NEWESTa7.$CHANNEL?t=$TIMESTAMP")
|
||||||
VERSION=$(echo "$NEWEST" | cut -d ' ' -f1)
|
VERSION=$(echo "$NEWEST" | cut -d ' ' -f1)
|
||||||
echo "Latest version: $VERSION"
|
echo "Latest version: $VERSION"
|
||||||
|
echo "LATEST_TAG=${IMAGE}:latest" >> $GITHUB_ENV
|
||||||
fi
|
fi
|
||||||
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
||||||
|
|
||||||
echo "IMAGE=$IMAGE" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Download CHR image
|
- name: Download CHR image
|
||||||
run: |
|
run: |
|
||||||
# x86 架构
|
# x86 架构
|
||||||
@ -139,28 +139,24 @@ jobs:
|
|||||||
exec $qemu
|
exec $qemu
|
||||||
EOF
|
EOF
|
||||||
chmod +x start.sh
|
chmod +x start.sh
|
||||||
cp start.sh amd64/start.sh
|
|
||||||
cp start.sh arm64/start.sh
|
|
||||||
rm start.sh
|
|
||||||
|
|
||||||
- name: Create Dockerfile
|
- name: Create Dockerfile
|
||||||
run: |
|
run: |
|
||||||
cat <<'EOF' > Dockerfile
|
cat <<'EOF' > Dockerfile
|
||||||
FROM alpine:latest
|
FROM alpine:latest
|
||||||
ARG TARGETARCH
|
ARG TARGETARCH
|
||||||
|
ARG VERSION
|
||||||
RUN case "$TARGETARCH" in \
|
RUN case "$TARGETARCH" in \
|
||||||
amd64) apk add --no-cache qemu-system-x86_64 ;; \
|
amd64) apk add --no-cache qemu-system-x86_64 ;; \
|
||||||
arm64) apk add --no-cache qemu-system-aarch64 ;; \
|
arm64) apk add --no-cache qemu-system-aarch64 ;; \
|
||||||
esac \
|
esac \
|
||||||
&& rm -rf /var/cache/apk/*
|
&& rm -rf /var/cache/apk/*
|
||||||
RUN mkdir -p /diskimage
|
RUN mkdir -p /diskimage
|
||||||
COPY *.img /diskimage
|
COPY ${TARGETARCH}/*.img /diskimage/
|
||||||
COPY start.sh /start.sh
|
COPY start.sh /start.sh
|
||||||
ENTRYPOINT ["/start.sh"]
|
ENTRYPOINT ["/start.sh"]
|
||||||
EOF
|
EOF
|
||||||
cp Dockerfile amd64/Dockerfile
|
|
||||||
cp Dockerfile arm64/Dockerfile
|
|
||||||
rm Dockerfile
|
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v4
|
uses: docker/setup-qemu-action@v4
|
||||||
@ -175,31 +171,16 @@ jobs:
|
|||||||
username: ${{ github.actor }}
|
username: ${{ github.actor }}
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Build amd64 digest
|
- name: Build and Push Multi-arch
|
||||||
run: |
|
uses: docker/build-push-action@v6
|
||||||
docker buildx build \
|
with:
|
||||||
--platform linux/amd64 \
|
context: .
|
||||||
--provenance=false \
|
platforms: linux/amd64,linux/arm64
|
||||||
--push \
|
push: true
|
||||||
--output=type=image,push-by-digest=true,name=${IMAGE} \
|
tags: |
|
||||||
--metadata-file amd64.json \
|
${{ env.IMAGE }}:${{ env.VERSION }}
|
||||||
./amd64
|
${{ env.LATEST_TAG }}
|
||||||
|
build-args: |
|
||||||
- name: Build arm64 digest
|
VERSION=${{ env.VERSION }}
|
||||||
run: |
|
cache-from: type=gha
|
||||||
docker buildx build \
|
cache-to: type=gha,mode=max
|
||||||
--platform linux/arm64 \
|
|
||||||
--provenance=false \
|
|
||||||
--push \
|
|
||||||
--output=type=image,push-by-digest=true,name=${IMAGE} \
|
|
||||||
--metadata-file arm64.json \
|
|
||||||
./arm64
|
|
||||||
|
|
||||||
- name: Create multi arch manifest
|
|
||||||
run: |
|
|
||||||
AMD64_DIGEST=$(jq -r '."containerimage.digest"' amd64.json)
|
|
||||||
ARM64_DIGEST=$(jq -r '."containerimage.digest"' arm64.json)
|
|
||||||
docker buildx imagetools create \
|
|
||||||
-t ${IMAGE}:${VERSION} \
|
|
||||||
${IMAGE}@${AMD64_DIGEST} \
|
|
||||||
${IMAGE}@${ARM64_DIGEST}
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user