From 4b3805e4c965f8872813ff3b290b0d05a3fed0f4 Mon Sep 17 00:00:00 2001 From: Florian Schwab Date: Sun, 24 Mar 2019 01:24:41 +0100 Subject: [PATCH] migrate to gitlab --- .gitignore | 1 + .gitlab-ci.yml | 65 +++++++++++++++++++++++++++++++++++++++++++++++ Dockerfile | 15 ++++++++--- README.md | 17 +++---------- qemu-dummy-static | 3 +++ 5 files changed, 84 insertions(+), 17 deletions(-) create mode 100644 .gitignore create mode 100644 .gitlab-ci.yml create mode 100755 qemu-dummy-static diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..65fb80f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/qemu-*-static diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..2a06c6f --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,65 @@ +image: docker:stable +services: + - docker:dind + +stages: + - build + - release + +variables: + QEMU_VERSION: v3.1.0-2 + +before_script: + - mkdir -p /root/.docker || true + - echo '{"experimental":"enabled"}' > /root/.docker/config.json + - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} + +build-amd64: + stage: build + script: + - wget https://github.com/multiarch/qemu-user-static/releases/download/${QEMU_VERSION}/qemu-x86_64-static -O qemu-x86_64-static + - chmod 554 qemu-x86_64-static + - docker build --build-arg ARCH=amd64 -t ${CI_REGISTRY_IMAGE}:${CI_JOB_ID}-amd64 . + - docker push ${CI_REGISTRY_IMAGE}:${CI_JOB_ID}-amd64 + +build-arm32v7: + stage: build + script: + - wget https://github.com/multiarch/qemu-user-static/releases/download/${QEMU_VERSION}/qemu-arm-static -O qemu-arm-static + - chmod 554 qemu-arm-static + - docker build --build-arg ARCH=arm32v7 -t ${CI_REGISTRY_IMAGE}:${CI_JOB_ID}-arm32v7 . + - docker push ${CI_REGISTRY_IMAGE}:${CI_JOB_ID}-arm32v7 + +release: + stage: release + script: + - docker pull ${CI_REGISTRY_IMAGE}:${CI_JOB_ID}-amd64 + - docker tag ${CI_REGISTRY_IMAGE}:${CI_JOB_ID}-amd64 ${CI_REGISTRY_IMAGE}:latest-amd64 + - docker push ${CI_REGISTRY_IMAGE}:latest-amd64 + - docker pull ${CI_REGISTRY_IMAGE}:${CI_JOB_ID}-arm32v7 + - docker tag ${CI_REGISTRY_IMAGE}:${CI_JOB_ID}-arm32v7 ${CI_REGISTRY_IMAGE}:latest-arm32v7 + - docker push ${CI_REGISTRY_IMAGE}:latest-arm32v7 + - docker manifest create ${CI_REGISTRY_IMAGE}:latest ${CI_REGISTRY_IMAGE}:${CI_JOB_ID}-amd64 ${CI_REGISTRY_IMAGE}:${CI_JOB_ID}-arm32v7 + - docker manifest annotate --os linux --arch amd64 ${CI_REGISTRY_IMAGE}:latest ${CI_REGISTRY_IMAGE}:${CI_JOB_ID}-amd64 + - docker manifest annotate --os linux --arch arm --variant v7 ${CI_REGISTRY_IMAGE}:latest ${CI_REGISTRY_IMAGE}:${CI_JOB_ID}-arm32v7 + - docker manifest push ${CI_REGISTRY_IMAGE}:latest + only: + - master + - tags + - schedules + +dockerhub: + stage: release + before_script: + - docker login -u ${DOCKERHUB_USER} -p ${DOCKERHUB_PASSWORD} ${DOCKERHUB_REGISTRY} + script: + - docker pull ${CI_REGISTRY_IMAGE}:${CI_JOB_ID}-amd64 + - docker pull ${CI_REGISTRY_IMAGE}:${CI_JOB_ID}-arm32v7 + - docker manifest create ${DOCKERHUB_IMAGE}:latest ${CI_REGISTRY_IMAGE}:${CI_JOB_ID}-amd64 ${CI_REGISTRY_IMAGE}:${CI_JOB_ID}-arm32v7 + - docker manifest annotate --os linux --arch amd64 ${DOCKERHUB_IMAGE}:latest ${CI_REGISTRY_IMAGE}:${CI_JOB_ID}-amd64 + - docker manifest annotate --os linux --arch arm --variant v7 ${DOCKERHUB_IMAGE}:latest ${CI_REGISTRY_IMAGE}:${CI_JOB_ID}-arm32v7 + - docker manifest push ${DOCKERHUB_IMAGE}:latest + only: + - master + - tags + - schedules diff --git a/Dockerfile b/Dockerfile index 59f6e6c..ef17ba9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,24 @@ -FROM alpine:3.9 +# Base image +ARG ARCH=amd64 +FROM $ARCH/alpine:3.9 + +# Prepare multi arch build +COPY qemu-* /usr/bin/ + +# Maintainer MAINTAINER Florian Schwab -# update system +# upgrade system RUN apk --no-cache --no-progress upgrade # install avahi RUN apk --no-cache --no-progress add avahi avahi-tools # disable d-bus -RUN sed -i 's/.*enable-dbus.*/enable-dbus=no/' /etc/avahi/avahi-daemon.conf +RUN sed -i 's/^enable-dbus=.*/enable-dbus=no/' /etc/avahi/avahi-daemon.conf # volumes -VOLUME ["/etc/avahi"] +VOLUME ["/etc/avahi/services"] # default command CMD ["avahi-daemon"] diff --git a/README.md b/README.md index 6439492..e0f2a11 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,11 @@ -# Docker image for Avahi +# Avahi Docker Image -## Get configuration from image +## Configuration -```bash -docker create ydkn/avahi:latest -docker cp $(docker ps -ql):/etc/avahi . -docker rm $(docker ps -ql) -``` - -## Modify configuration - -Edit `avahi-daemon.conf` to your needs. -Edit the services in the `services` directory to your needs. +Put your service definition files in a directory and mount it as a volume to _/etc/avahi/services_. ## Start the container ```bash -docker run -d --restart always --net=host -v $(pwd)/avahi:/etc/avahi ydkn/avahi:latest +docker run -d --restart always --net=host -v $(pwd)/services:/etc/avahi/services ydkn/avahi:latest ``` diff --git a/qemu-dummy-static b/qemu-dummy-static new file mode 100755 index 0000000..72726f9 --- /dev/null +++ b/qemu-dummy-static @@ -0,0 +1,3 @@ +#!/bin/sh + +echo "Dummy QEMU wrapper to allow builds without specifing an architecture."