From 7f224658e0b3b0fb4799ffa44a943792d08bce41 Mon Sep 17 00:00:00 2001 From: Andrey Meshkov Date: Tue, 21 Apr 2020 15:05:13 +0300 Subject: [PATCH] *: moved docker files to the packaging folder --- .travis.yml | 2 +- Makefile | 8 ++++++++ build_docker.sh | 2 +- release.sh => build_release.sh | 0 Dockerfile => packaging/docker/Dockerfile | 0 packaging/docker/Dockerfile.hub | 23 +++++++++++++++++++++++ packaging/docker/README.md | 6 ++++++ 7 files changed, 39 insertions(+), 2 deletions(-) rename release.sh => build_release.sh (100%) rename Dockerfile => packaging/docker/Dockerfile (100%) create mode 100644 packaging/docker/Dockerfile.hub create mode 100644 packaging/docker/README.md diff --git a/.travis.yml b/.travis.yml index fd369c2e..d6fc01cc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -86,7 +86,7 @@ matrix: - node -v - npm -v # Prepare releases - - ./release.sh + - ./build_release.sh - ls -l dist deploy: diff --git a/Makefile b/Makefile index 74934562..ff32c957 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,9 @@ GOPATH := $(shell go env GOPATH) JSFILES = $(shell find client -path client/node_modules -prune -o -type f -name '*.js') STATIC = build/static/index.html CHANNEL ?= release +DOCKER_IMAGE_DEV_NAME=adguardhome-dev +DOCKERFILE=packaging/docker/Dockerfile +DOCKERFILE_HUB=packaging/docker/Dockerfile.travis TARGET=AdGuardHome @@ -26,6 +29,11 @@ $(TARGET): $(STATIC) *.go home/*.go dhcpd/*.go dnsfilter/*.go dnsforward/*.go CGO_ENABLED=0 go build -ldflags="-s -w -X main.version=$(GIT_VERSION) -X main.channel=$(CHANNEL) -X main.goarm=$(GOARM)" -asmflags="-trimpath=$(PWD)" -gcflags="-trimpath=$(PWD)" PATH=$(GOPATH)/bin:$(PATH) packr clean +docker: + docker build -t "$(DOCKER_IMAGE_DEV_NAME)" -f "$(DOCKERFILE)" . + @echo Now you can run the docker image: + @echo docker run --name "$(DOCKER_IMAGE_DEV_NAME)" -p 53:53/tcp -p 53:53/udp -p 3000:3000/tcp $(DOCKER_IMAGE_DEV_NAME) + clean: $(MAKE) cleanfast rm -rf build diff --git a/build_docker.sh b/build_docker.sh index 1123d269..81173574 100755 --- a/build_docker.sh +++ b/build_docker.sh @@ -4,7 +4,7 @@ set -eE set -o pipefail set -x -DOCKERFILE="Dockerfile.travis" +DOCKERFILE="packaging/docker/Dockerfile.hub" IMAGE_NAME="adguard/adguardhome" if [[ "${TRAVIS_BRANCH}" == "master" ]] diff --git a/release.sh b/build_release.sh similarity index 100% rename from release.sh rename to build_release.sh diff --git a/Dockerfile b/packaging/docker/Dockerfile similarity index 100% rename from Dockerfile rename to packaging/docker/Dockerfile diff --git a/packaging/docker/Dockerfile.hub b/packaging/docker/Dockerfile.hub new file mode 100644 index 00000000..0e11574e --- /dev/null +++ b/packaging/docker/Dockerfile.hub @@ -0,0 +1,23 @@ +FROM alpine:latest +LABEL maintainer="AdGuard Team " + +# Update CA certs +RUN apk --no-cache --update add ca-certificates libcap && \ + rm -rf /var/cache/apk/* && \ + mkdir -p /opt/adguardhome/conf /opt/adguardhome/work && \ + chown -R nobody: /opt/adguardhome + +COPY --chown=nobody:nogroup ./AdGuardHome /opt/adguardhome/AdGuardHome + +RUN setcap 'cap_net_bind_service=+eip' /opt/adguardhome/AdGuardHome + +EXPOSE 53/tcp 53/udp 67/udp 68/udp 80/tcp 443/tcp 853/tcp 3000/tcp + +VOLUME ["/opt/adguardhome/conf", "/opt/adguardhome/work"] + +WORKDIR /opt/adguardhome/work + +#USER nobody + +ENTRYPOINT ["/opt/adguardhome/AdGuardHome"] +CMD ["-h", "0.0.0.0", "-c", "/opt/adguardhome/conf/AdGuardHome.yaml", "-w", "/opt/adguardhome/work", "--no-check-update"] diff --git a/packaging/docker/README.md b/packaging/docker/README.md new file mode 100644 index 00000000..d44ec143 --- /dev/null +++ b/packaging/docker/README.md @@ -0,0 +1,6 @@ +## Docker images + +* `Dockerfile` is used for local development. Build it using `make docker` command. + +* `Dockerfile.huub` is used to publish AdGuard images to Docker Hub: https://hub.docker.com/r/adguard/adguardhome + Check out `build_docker.sh` for the details. \ No newline at end of file