Support building multi-platform images

This commit is contained in:
Lars Gohr
2021-04-01 22:48:22 +02:00
parent f7aca2fea7
commit 13c6c46d98
5 changed files with 51 additions and 2 deletions

View File

@@ -16,6 +16,10 @@ main() {
sanitize "${INPUT_PASSWORD}" "password"
fi
if uses "${INPUT_PLATFORMS}"; then
enableExperimentalDocker
fi
registryToLower
nameToLower
@@ -84,6 +88,11 @@ sanitize() {
fi
}
enableExperimentalDocker() {
echo $'{"experimental": true}' | sudo dd status=none of=/etc/docker/daemon.json
sudo service docker restart
}
registryToLower(){
INPUT_REGISTRY=$(echo "${INPUT_REGISTRY}" | tr '[A-Z]' '[a-z]')
}
@@ -190,7 +199,12 @@ build() {
for TAG in ${TAGS}; do
BUILD_TAGS="${BUILD_TAGS}-t ${INPUT_NAME}:${TAG} "
done
docker build ${INPUT_BUILDOPTIONS} ${BUILDPARAMS} ${BUILD_TAGS} ${CONTEXT}
if uses "${INPUT_PLATFORMS}"; then
local PLATFORMS="--platform ${INPUT_PLATFORMS}"
docker buildx build ${PLATFORMS} ${INPUT_BUILDOPTIONS} ${BUILDPARAMS} ${BUILD_TAGS} ${CONTEXT}
else
docker build ${INPUT_BUILDOPTIONS} ${BUILDPARAMS} ${BUILD_TAGS} ${CONTEXT}
fi
}
push() {