Cross build Docker images with multiarch/qemu-user-static

This commit is contained in:
NI
2021-10-22 16:45:52 +08:00
parent 4e87394edf
commit c719aad677
2 changed files with 5 additions and 4 deletions

5
.ci.sh
View File

@@ -8,6 +8,7 @@ BUILD_TARGETS="darwin/amd64 windows/386 windows/amd64 openbsd/386 openbsd/amd64
DOCKER_BUILD_TARGETS="linux/amd64,linux/arm/v7,linux/arm64" DOCKER_BUILD_TARGETS="linux/amd64,linux/arm/v7,linux/arm64"
DOCKER_CLI_EXPERIMENTAL=enabled DOCKER_CLI_EXPERIMENTAL=enabled
DOCKER_BUILDKIT=1
SSHWIFTY_VERSION=$(git describe --always --dirty='*' --tag) SSHWIFTY_VERSION=$(git describe --always --dirty='*' --tag)
SSHWIFTY_COMMIT=$(git describe --always) SSHWIFTY_COMMIT=$(git describe --always)
@@ -112,9 +113,11 @@ if [ "$SSHWIFTY_DEPLOY" = 'yes' ]; then
catch child \ catch child \
' '
docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" && docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" &&
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes &&
docker buildx create --use --driver docker-container --name buildx-instance && docker buildx create --use --driver docker-container --name buildx-instance &&
docker buildx inspect --bootstrap &&
docker buildx ls && docker buildx ls &&
docker buildx build --tag "$SSHWIFTY_DOCKER_IMAGE_PUSH_TAG" --tag "$SSHWIFTY_DOCKER_IMAGE_PUSH_TAG_LATEST" --platform "$DOCKER_BUILD_TARGETS" --build-arg GOMIPS=softfloat --build-arg CUSTOM_COMMAND="$DOCKER_CUSTOM_COMMAND" --progress plain --push . docker buildx build --tag "$SSHWIFTY_DOCKER_IMAGE_PUSH_TAG" --tag "$SSHWIFTY_DOCKER_IMAGE_PUSH_TAG_LATEST" --platform "$DOCKER_BUILD_TARGETS" --builder buildx-instance --build-arg GOMIPS=softfloat --build-arg CUSTOM_COMMAND="$DOCKER_CUSTOM_COMMAND" --progress plain --push .
' \ ' \
' '
mkdir -p ./.tmp/generated ./.tmp/release && mkdir -p ./.tmp/generated ./.tmp/release &&

View File

@@ -26,9 +26,7 @@ jobs:
export DOCKER_CUSTOM_COMMAND='echo "GitHub Action Build"' export DOCKER_CUSTOM_COMMAND='echo "GitHub Action Build"'
sudo add-apt-repository -y ppa:jacob/virtualisation
sudo apt-get update -y sudo apt-get update -y
sudo apt-get install -y qemu qemu-user-static binfmt-support sudo apt-get upgrade -y
sudo systemctl restart docker
cp ./.ci.sh ./.github-action-ci-script.sh && chmod +x ./.github-action-ci-script.sh && time ./.github-action-ci-script.sh && rm ./.github-action-ci-script.sh cp ./.ci.sh ./.github-action-ci-script.sh && chmod +x ./.github-action-ci-script.sh && time ./.github-action-ci-script.sh && rm ./.github-action-ci-script.sh