FROM docker.jcg.re/base-alpine MAINTAINER Jan Christian Grünhage ARG CLONE_URL=github.com/mholt/caddy ARG BRANCH ENV GOPATH=/gopath \ UID=192 \ GID=192 ADD plugins.txt /plugins RUN apk upgrade --update \ && apk add \ build-base \ su-exec \ libcap \ go \ git \ bash \ && mkdir -p ${GOPATH}/src/${CLONE_URL} \ && cd $GOPATH/src/${CLONE_URL} \ && git clone https://${CLONE_URL} . \ && git checkout ${BRANCH:-$(git describe --abbrev=0 --tags)} \ && cd caddy/caddymain \ && export LINE="$(grep -n "// This is where other plugins get plugged in (imported)" < run.go | sed 's/^\([0-9]\+\):.*$/\1/')" \ && head -n ${LINE} run.go > newrun.go \ && cat /plugins >> newrun.go \ && line=`expr ${LINE} + 1` \ && tail -n +${LINE} run.go >> newrun.go \ && rm -f run.go \ && mv newrun.go run.go \ && go get ${CLONE_URL}/... \ && mv $GOPATH/bin/caddy /usr/bin \ && setcap cap_net_bind_service=+ep /usr/bin/caddy \ && apk del --purge build-base go \ && mkdir /caddy \ && rm -rf $GOPATH /var/cache/apk/* /plugins ADD root / EXPOSE 2015 80 443 VOLUME ["/caddy", "/var/www"]