docker-caddy/Dockerfile

44 lines
1.1 KiB
Docker
Executable File

FROM docker.jcg.re/base-alpine
MAINTAINER Jan Christian Grünhage <jan.christian@gruenhage.xyz>
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"]