diff --git a/Dockerfile b/Dockerfile index ce7d3d8..3bc93d7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,9 @@ -FROM arm64v8/debian:stretch-slim +ARG docker_arch=amd64 +FROM $docker_arch/debian:stretch-slim +ARG qemu_arch="./qemu-x86_64-static" +ARG docker_arch=amd64 MAINTAINER Adam Harrison-Fuller -COPY qemu-aarch64-static /usr/bin/ +COPY ${qemu_arch} /usr/bin/ RUN apt-get update && \ apt-get install -y mumble-server && \ @@ -10,7 +13,8 @@ RUN apt-get update && \ EXPOSE 64738 64738/udp -ADD ./data/mumble_server.ini /config/ +ADD ./data/mumble_server.ini /config-orig/ +RUN mkdir /config VOLUME /data ENV MUMBLE_INI /config/mumble_server.ini diff --git a/README.md b/README.md index 7545e85..0627a16 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ A lean mumble container with mumble version 1.2.18, from Debian Stretch-Lite to setup SuperUser password, change your run command from the default: ``` -docker run -ti --rm adamhf/mumble_arm -supw supersecret +docker run -ti --rm adamhf/mumble -supw supersecret mumble-server does not own /data, attempting to modify Failed to set initial capabilities 2014-12-15 04:37:27.398 Initializing settings from /data/mumble_server.ini (basepath /data) diff --git a/build.sh b/build.sh index 9411a99..fdbd0e8 100755 --- a/build.sh +++ b/build.sh @@ -1,5 +1,4 @@ #!/usr/bin/env bash - docker run --rm --privileged multiarch/qemu-user-static:register --reset echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin @@ -12,20 +11,16 @@ for docker_arch in amd64 arm32v7 arm64v8; do 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 + docker build \ + -f Dockerfile \ + --build-arg docker_arch=${docker_arch} \ + --build-arg qemu_arch=./qemu-${qemu_arch}-static \ + -t adamhf/mumble:${docker_arch}-latest \ + . + docker push adamhf/mumble:${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 +docker manifest create --amend adamhf/mumble:latest adamhf/mumble:amd64-latest adamhf/mumble:arm32v7-latest adamhf/mumble:arm64v8-latest +docker manifest annotate adamhf/mumble:latest adamhf/mumble:arm32v7-latest --os linux --arch arm --variant v7 +docker manifest annotate adamhf/mumble:latest adamhf/mumble:arm64v8-latest --os linux --arch arm64 --variant v8 +docker manifest push adamhf/mumble:latest diff --git a/entrypoint.sh b/entrypoint.sh index 9a5263f..b43a181 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -7,6 +7,12 @@ if [ "$(stat -c %U /data)" != "mumble-server" ] ; then chown -R mumble-server.mumble-server /data fi; +if [ ! -f /config/mumble_server.ini ]; then + echo "No config file found in /config, copying in default file" + cp /config-orig/mumble_server.ini /config/ + chown -R mumble-server.mumble-server /config +fi + OPTS="-ini $MUMBLE_INI" exec murmurd $OPTS $@