Build caddy with plugin (#43)

* Add build stage

* Add custom build

* Use golang:1.8 as base

since it include git that is needed.

* Use alpine as base build env
This commit is contained in:
Antoine GIRARD 2017-06-05 16:07:56 +02:00 committed by Bo-Yi Wu
parent 0f1f5dae9c
commit 36205c74f4
1 changed files with 16 additions and 10 deletions

View File

@ -1,16 +1,22 @@
# build stage
FROM golang:alpine AS build-env
RUN apk add --no-cache git
RUN go get -d -v github.com/mholt/caddy/caddy github.com/pedronasser/caddy-search github.com/simia-tech/caddy-locale
WORKDIR /go/src/github.com/mholt/caddy/caddy
RUN sed -i '/This is where other plugins get plugged in (imported)/a _ "github.com/pedronasser/caddy-search"' caddymain/run.go \
&& sed -i '/This is where other plugins get plugged in (imported)/a _ "github.com/simia-tech/caddy-locale"' caddymain/run.go \
&& go install -v . \
&& /go/bin/caddy -version
FROM alpine:edge
EXPOSE 80
RUN apk update && \
apk add wget mailcap ca-certificates && \
rm -rf /var/cache/apk/* && \
wget -O /tmp/caddy.tar.gz "https://caddyserver.com/download/build?os=linux&arch=amd64&features=locale%2Csearch" && \
mkdir -p /tmp/caddy && \
tar xvzf /tmp/caddy.tar.gz -C /tmp/caddy && \
cp /tmp/caddy/caddy /usr/sbin/caddy && \
rm -rf /tmp/caddy*
CMD ["/usr/sbin/caddy", "-conf", "/etc/caddy.conf"]
RUN apk add --no-cache wget mailcap ca-certificates
COPY --from=build-env /go/bin/caddy /usr/sbin/caddy
COPY docker/caddy.conf /etc/caddy.conf
COPY public /srv/www
CMD ["/usr/sbin/caddy", "-conf", "/etc/caddy.conf"]