Added multiarch build, because I need this image for mi Raspberry PI

This commit is contained in:
eddyhub
2018-08-19 08:43:30 +02:00
parent e045dc9a2e
commit 8697de51a3
3 changed files with 62 additions and 2 deletions
+24
View File
@@ -0,0 +1,24 @@
sudo: required
services:
- docker
language: bash
env:
global:
- TRAVIS_SECURE_ENV_VARS=true
before_install:
- sudo apt-get remove docker docker-engine docker.io
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- sudo apt-get update
- sudo apt-get -y install docker-ce
- echo '{"experimental":true}' | sudo tee /etc/docker/daemon.json
- sudo service docker restart
- mkdir ~/.docker
- echo '{"experimental":"enabled"}' | tee ~/.docker/config.json
- ls -al ~/.docker/config.json
- cat ~/.docker/config.json
script:
- bash build.sh $TRAVIS_REPO_SLUG $DOCKER_USERNAME $DOCKER_PASSWORD
+3 -2
View File
@@ -1,4 +1,5 @@
FROM alpine:3.5
ARG arch=amd64
FROM multiarch/alpine:${arch}-latest-stable
RUN apk add --no-cache curl jq
@@ -7,4 +8,4 @@ ENTRYPOINT ["/docker-entrypoint"]
HEALTHCHECK --interval=5s CMD exit 0
CMD ["autoheal"]
CMD ["autoheal"]
+35
View File
@@ -0,0 +1,35 @@
#!/bin/bash
REPO=${1}
DOCKER_USERNAME=${2}
DOCKER_PASSWORD=${3}
declare -A ARCH_MAP
ARCH_MAP[amd64]=amd64
ARCH_MAP[armhf]=arm
ARCH_MAP[arm64]=arm64
docker run --rm --privileged multiarch/qemu-user-static:register --reset
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
echo "Building docker images"
for i in "${!ARCH_MAP[@]}"; do
echo "################################################################################"
echo "Building and pushing: ${REPO}-${ARCH_MAP[$i]}:latest "
echo "################################################################################"
docker build --build-arg arch=${i} -t ${REPO}-${ARCH_MAP[$i]}:latest .;
docker push ${REPO}-${ARCH_MAP[$i]}:latest;
done;
MANIFESTS=""
for arch in "${ARCH_MAP[@]}"; do MANIFESTS="${MANIFESTS} ${REPO}-${arch}:latest"; done
echo "################################################################################"
echo "Building and pushing: ${REPO}-${ARCH_MAP[$i]}:latest "
echo "################################################################################"
docker manifest create ${REPO}:latest ${MANIFESTS};
for arch in "${ARCH_MAP[@]}"; do
docker manifest annotate --os linux --arch ${arch} ${REPO}:latest ${REPO}-${arch}:latest;
done;
docker manifest push ${REPO}:latest