diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..ae353a8 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,15 @@ +sudo: required +services: +- docker +language: bash +script: +- | + # echo "Updating Docker to have docker manifest command" + curl https://get.docker.com | sh + # echo "Enabling docker client experimental features" + mkdir -p ~/.docker + echo '{ "experimental": "enabled" }' > ~/.docker/config.json + docker version +# prepare qemu +- sudo apt-get install qemu-user +- ./build.sh diff --git a/Dockerfile b/Dockerfile index 682362c..ce7d3d8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,6 @@ -FROM debian:stretch-slim +FROM arm64v8/debian:stretch-slim MAINTAINER Adam Harrison-Fuller +COPY qemu-aarch64-static /usr/bin/ RUN apt-get update && \ apt-get install -y mumble-server && \ diff --git a/Dockerfile.cross b/Dockerfile.cross new file mode 100644 index 0000000..77a2eac --- /dev/null +++ b/Dockerfile.cross @@ -0,0 +1,22 @@ +FROM __BASEIMAGE_ARCH__/debian:stretch-slim +__CROSS_COPY qemu-__QEMU_ARCH__-static /usr/bin/ + +MAINTAINER Adam Harrison-Fuller + +RUN apt-get update && \ + apt-get install -y mumble-server && \ + rm -rf \ + /var/cache/apt/* \ + /var/lib/apt/lists/* + +EXPOSE 64738 64738/udp + +ADD ./data/mumble_server.ini /config/ +VOLUME /data +ENV MUMBLE_INI /config/mumble_server.ini + +ADD entrypoint.sh / +RUN chmod +x entrypoint.sh + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["-fg"] \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..9411a99 --- /dev/null +++ b/build.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +docker run --rm --privileged multiarch/qemu-user-static:register --reset +echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin + +for docker_arch in amd64 arm32v7 arm64v8; do + case ${docker_arch} in + amd64 ) qemu_arch="x86_64" ;; + arm32v7 ) qemu_arch="arm" ;; + arm64v8 ) qemu_arch="aarch64" ;; + esac + wget -N https://github.com/multiarch/qemu-user-static/releases/download/v3.1.0-2/x86_64_qemu-${qemu_arch}-static.tar.gz + tar -xvf x86_64_qemu-${qemu_arch}-static.tar.gz + + cat Dockerfile.cross | \ + sed -e "s|__BASEIMAGE_ARCH__|${docker_arch}|g" | \ + sed -e "s|__QEMU_ARCH__|${qemu_arch}|g" > Dockerfile.${docker_arch} + if [ ${docker_arch} == "amd64" ]; then + sed -i -e "/__CROSS_/d" Dockerfile.${docker_arch} + else + sed -i -e "s/__CROSS_//g" Dockerfile.${docker_arch} + fi + + docker build -f Dockerfile.${docker_arch} -t adamhf/mumble_arm:${docker_arch}-latest . + docker push adamhf/mumble_arm:${docker_arch}-latest +done + +docker manifest create --amend adamhf/mumble_arm:latest adamhf/mumble_arm:amd64-latest adamhf/mumble_arm:arm32v7-latest adamhf/mumble_arm:arm64v8-latest +docker manifest annotate adamhf/mumble_arm:latest adamhf/mumble_arm:arm32v7-latest --os linux --arch arm --variant v7 +docker manifest annotate adamhf/mumble_arm:latest adamhf/mumble_arm:arm64v8-latest --os linux --arch arm64 --variant v8 +docker manifest push adamhf/mumble_arm:latest diff --git a/fig.yml b/fig.yml deleted file mode 100644 index cbcebc0..0000000 --- a/fig.yml +++ /dev/null @@ -1,7 +0,0 @@ -mumble: - build: . - ports: - - "64739:64738" - - "64739:64738/udp" - volumes: - - data/:/data/