Can't build v0.10 in docker

Hello,

I’m updating my docker image, and I can’t build v0.10 and newer.
The problem has something to do with the new TLS stuff, see the log:

v0.9.5:

Sending build context to Docker daemon 50.18 kB
Step 1 : FROM alpine:edge
 ---> e020ea09df00
Step 2 : MAINTAINER Jan Christian Grünhage <mail@janchristiangruenhage.de>
 ---> Using cache
 ---> 0e76128d9bdd
Step 3 : ENV GOPATH /gopath
 ---> Using cache
 ---> 5626a92db892
Step 4 : ENV CADDY_REPO_OWNER mholt
 ---> Using cache
 ---> 537a369fda1a
Step 5 : ENV CADDY_REPO_NAME caddy
 ---> Using cache
 ---> 92ccb0531440
Step 6 : ENV CADDY_BRANCH tags/v0.9.5
 ---> Running in f552aa68733a
 ---> da503b3e4a6f
Removing intermediate container f552aa68733a
Step 7 : ENV CADDYPATH /caddy
 ---> Running in 3af1b917dcb8
 ---> d5fb1b2c699d
Removing intermediate container 3af1b917dcb8
Step 8 : ENV UID 192
 ---> Running in 2a5fca8f0afb
 ---> f381419c5d69
Removing intermediate container 2a5fca8f0afb
Step 9 : ENV GID 192
 ---> Running in 7d4a030b64cc
 ---> 9b76b2890c34
Removing intermediate container 7d4a030b64cc
Step 10 : COPY ./plugins.txt /plugins
 ---> 45cb5948ecf7
Removing intermediate container 4a7f8cf8d6c2
Step 11 : RUN addgroup -g $GID -S caddy 	&& adduser -u $UID -g $GID -S caddy
 ---> Running in 1f285081e086
 ---> 82dfd892a32e
Removing intermediate container 1f285081e086
Step 12 : RUN apk add --update musl 	&& apk add --no-cache build-base libcap tini go git 	&& mkdir -p $GOPATH/src/github.com/$CADDY_REPO_OWNER 	&& cd $GOPATH/src/github.com/$CADDY_REPO_OWNER 	&& git clone https://github.com/$CADDY_REPO_OWNER/$CADDY_REPO_NAME 	&& cd $CADDY_REPO_NAME 	&& git checkout $CADDY_BRANCH 	&& 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 github.com/$CADDY_REPO_OWNER/$CADDY_REPO_NAME/... 	&& mv $GOPATH/bin/caddy /usr/bin 	&& setcap cap_net_bind_service=+ep /usr/bin/caddy 	&& apk del --purge build-base go 	&& mkdir $CADDYPATH 	&& rm -rf $GOPATH /var/cache/apk/*
 ---> Running in a2e8f77db0af
fetch http://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
OK: 4 MiB in 11 packages
fetch http://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
(1/27) Installing binutils-libs (2.28-r1)
(2/27) Installing binutils (2.28-r1)
(3/27) Installing gmp (6.1.2-r0)
(4/27) Installing isl (0.17.1-r0)
(5/27) Installing libgomp (6.3.0-r4)
(6/27) Installing libatomic (6.3.0-r4)
(7/27) Installing pkgconf (1.3.6-r0)
(8/27) Installing libgcc (6.3.0-r4)
(9/27) Installing mpfr3 (3.1.5-r0)
(10/27) Installing mpc1 (1.0.3-r0)
(11/27) Installing libstdc++ (6.3.0-r4)
(12/27) Installing gcc (6.3.0-r4)
(13/27) Installing musl-dev (1.1.16-r8)
(14/27) Installing libc-dev (0.7.1-r0)
(15/27) Installing g++ (6.3.0-r4)
(16/27) Installing make (4.2.1-r0)
(17/27) Installing fortify-headers (0.8-r0)
(18/27) Installing build-base (0.5-r0)
(19/27) Installing ca-certificates (20161130-r2)
(20/27) Installing libssh2 (1.8.0-r1)
(21/27) Installing libcurl (7.54.0-r0)
(22/27) Installing expat (2.2.0-r0)
(23/27) Installing pcre (8.40-r2)
(24/27) Installing git (2.13.0-r0)
(25/27) Installing go (1.7.4-r2)
(26/27) Installing libcap (2.25-r1)
(27/27) Installing tini (0.14.0-r0)
Executing busybox-1.26.2-r2.trigger
Executing ca-certificates-20161130-r2.trigger
OK: 352 MiB in 38 packages
Cloning into 'caddy'...
Note: checking out 'tags/v0.9.5'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 94e382e... Version 0.9.5
(1/19) Purging build-base (0.5-r0)
(2/19) Purging g++ (6.3.0-r4)
(3/19) Purging make (4.2.1-r0)
(4/19) Purging libc-dev (0.7.1-r0)
(5/19) Purging musl-dev (1.1.16-r8)
(6/19) Purging fortify-headers (0.8-r0)
(7/19) Purging go (1.7.4-r2)
(8/19) Purging gcc (6.3.0-r4)
(9/19) Purging binutils (2.28-r1)
(10/19) Purging libatomic (6.3.0-r4)
(11/19) Purging libgomp (6.3.0-r4)
(12/19) Purging binutils-libs (2.28-r1)
(13/19) Purging mpc1 (1.0.3-r0)
(14/19) Purging mpfr3 (3.1.5-r0)
(15/19) Purging isl (0.17.1-r0)
(16/19) Purging gmp (6.1.2-r0)
(17/19) Purging pkgconf (1.3.6-r0)
(18/19) Purging libstdc++ (6.3.0-r4)
(19/19) Purging libgcc (6.3.0-r4)
Executing busybox-1.26.2-r2.trigger
OK: 25 MiB in 19 packages
 ---> dc6cd0e8d336
Removing intermediate container a2e8f77db0af
Step 13 : USER caddy
 ---> Running in ee9b1a0f5935
 ---> e0f1cf5e85b5
Removing intermediate container ee9b1a0f5935
Step 14 : EXPOSE 2015 80 443
 ---> Running in e9fa914ed070
 ---> 6f89bca83f62
Removing intermediate container e9fa914ed070
Step 15 : VOLUME $CADDYPATH
 ---> Running in b246fa58d839
 ---> 5fe371fc2bd8
Removing intermediate container b246fa58d839
Step 16 : WORKDIR "$CADDYPATH"
 ---> Running in 17f18d52730d
 ---> e77d179a434b
Removing intermediate container 17f18d52730d
Step 17 : ENTRYPOINT /sbin/tini
 ---> Running in bf9aac4d0623
 ---> 9a7afbda759e
Removing intermediate container bf9aac4d0623
Step 18 : CMD caddy -quic --conf /caddy/Caddyfile
 ---> Running in 16666f2fa214
 ---> c7635965f6ce
Removing intermediate container 16666f2fa214
Successfully built c7635965f6ce

v0.10.2:

Sending build context to Docker daemon 50.18 kB
Step 1 : FROM alpine:edge
 ---> e020ea09df00
Step 2 : MAINTAINER Jan Christian Grünhage <mail@janchristiangruenhage.de>
 ---> Using cache
 ---> 0e76128d9bdd
Step 3 : ENV GOPATH /gopath
 ---> Using cache
 ---> 5626a92db892
Step 4 : ENV CADDY_REPO_OWNER mholt
 ---> Using cache
 ---> 537a369fda1a
Step 5 : ENV CADDY_REPO_NAME caddy
 ---> Using cache
 ---> 92ccb0531440
Step 6 : ENV CADDY_BRANCH tags/v0.10.2
 ---> Using cache
 ---> a8a1b6aacf70
Step 7 : ENV CADDYPATH /caddy
 ---> Using cache
 ---> 250296894499
Step 8 : ENV UID 192
 ---> Using cache
 ---> 85bc8cbcae32
Step 9 : ENV GID 192
 ---> Using cache
 ---> 6fdeac5a0e5e
Step 10 : COPY ./plugins.txt /plugins
 ---> Using cache
 ---> 6c045671b2bf
Step 11 : RUN addgroup -g $GID -S caddy 	&& adduser -u $UID -g $GID -S caddy
 ---> Using cache
 ---> 9d8eb180376c
Step 12 : RUN apk add --update musl 	&& apk add --no-cache build-base libcap tini go git 	&& mkdir -p $GOPATH/src/github.com/$CADDY_REPO_OWNER 	&& cd $GOPATH/src/github.com/$CADDY_REPO_OWNER 	&& git clone https://github.com/$CADDY_REPO_OWNER/$CADDY_REPO_NAME 	&& cd $CADDY_REPO_NAME 	&& git checkout $CADDY_BRANCH 	&& 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 github.com/$CADDY_REPO_OWNER/$CADDY_REPO_NAME/... 	&& mv $GOPATH/bin/caddy /usr/bin 	&& setcap cap_net_bind_service=+ep /usr/bin/caddy 	&& apk del --purge build-base go 	&& mkdir $CADDYPATH 	&& rm -rf $GOPATH /var/cache/apk/*
 ---> Running in 6c0c63b41aeb
fetch http://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
OK: 4 MiB in 11 packages
fetch http://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
(1/27) Installing binutils-libs (2.28-r1)
(2/27) Installing binutils (2.28-r1)
(3/27) Installing gmp (6.1.2-r0)
(4/27) Installing isl (0.17.1-r0)
(5/27) Installing libgomp (6.3.0-r4)
(6/27) Installing libatomic (6.3.0-r4)
(7/27) Installing pkgconf (1.3.6-r0)
(8/27) Installing libgcc (6.3.0-r4)
(9/27) Installing mpfr3 (3.1.5-r0)
(10/27) Installing mpc1 (1.0.3-r0)
(11/27) Installing libstdc++ (6.3.0-r4)
(12/27) Installing gcc (6.3.0-r4)
(13/27) Installing musl-dev (1.1.16-r8)
(14/27) Installing libc-dev (0.7.1-r0)
(15/27) Installing g++ (6.3.0-r4)
(16/27) Installing make (4.2.1-r0)
(17/27) Installing fortify-headers (0.8-r0)
(18/27) Installing build-base (0.5-r0)
(19/27) Installing ca-certificates (20161130-r2)
(20/27) Installing libssh2 (1.8.0-r1)
(21/27) Installing libcurl (7.54.0-r0)
(22/27) Installing expat (2.2.0-r0)
(23/27) Installing pcre (8.40-r2)
(24/27) Installing git (2.13.0-r0)
(25/27) Installing go (1.7.4-r2)
(26/27) Installing libcap (2.25-r1)
(27/27) Installing tini (0.14.0-r0)
Executing busybox-1.26.2-r2.trigger
Executing ca-certificates-20161130-r2.trigger
OK: 352 MiB in 38 packages
Cloning into 'caddy'...
Note: checking out 'tags/v0.10.2'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at dfebffb... Update readme and changes for version 0.10.2
# github.com/mholt/caddy/caddytls
../../caddytls/config.go:362: unknown tls.Config field 'GetConfigForClient' in struct literal
../../caddytls/config.go:439: undefined: tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
../../caddytls/config.go:440: undefined: tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
../../caddytls/config.go:457: undefined: tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
../../caddytls/config.go:458: undefined: tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
../../caddytls/config.go:470: undefined: tls.X25519
../../caddytls/config.go:482: undefined: tls.X25519
The command '/bin/sh -c apk add --update musl 	&& apk add --no-cache build-base libcap tini go git 	&& mkdir -p $GOPATH/src/github.com/$CADDY_REPO_OWNER 	&& cd $GOPATH/src/github.com/$CADDY_REPO_OWNER 	&& git clone https://github.com/$CADDY_REPO_OWNER/$CADDY_REPO_NAME 	&& cd $CADDY_REPO_NAME 	&& git checkout $CADDY_BRANCH 	&& 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 github.com/$CADDY_REPO_OWNER/$CADDY_REPO_NAME/... 	&& mv $GOPATH/bin/caddy /usr/bin 	&& setcap cap_net_bind_service=+ep /usr/bin/caddy 	&& apk del --purge build-base go 	&& mkdir $CADDYPATH 	&& rm -rf $GOPATH /var/cache/apk/*' returned a non-zero code: 2

My Dockerfile:

FROM alpine:edge
MAINTAINER Jan Christian Grünhage <mail@janchristiangruenhage.de>

ENV GOPATH /gopath
ENV CADDY_REPO_OWNER mholt
ENV CADDY_REPO_NAME caddy
ENV CADDY_BRANCH tags/v0.10.2
ENV CADDYPATH /caddy
ENV UID 192
ENV GID 192

COPY ./plugins.txt /plugins

RUN addgroup -g $GID -S caddy \
        && adduser -u $UID -g $GID -S caddy

RUN apk add --update musl \
        && apk add --no-cache build-base libcap tini go git \
        && mkdir -p $GOPATH/src/github.com/$CADDY_REPO_OWNER \
        && cd $GOPATH/src/github.com/$CADDY_REPO_OWNER \
        && git clone https://github.com/$CADDY_REPO_OWNER/$CADDY_REPO_NAME \
        && cd $CADDY_REPO_NAME \
        && git checkout $CADDY_BRANCH \
        && 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 github.com/$CADDY_REPO_OWNER/$CADDY_REPO_NAME/... \
        && mv $GOPATH/bin/caddy /usr/bin \
        && setcap cap_net_bind_service=+ep /usr/bin/caddy \
        && apk del --purge build-base go \
        && mkdir $CADDYPATH \
        && rm -rf $GOPATH /var/cache/apk/*

USER            caddy
EXPOSE          2015 80 443
VOLUME          [ "$CADDYPATH" ]
WORKDIR         "$CADDYPATH"
ENTRYPOINT      [ "/sbin/tini" ]
CMD             [ "caddy", "-quic", "--conf", "/caddy/Caddyfile" ]

You need Go 1.8 or newer; maybe apk add is installing an old version of Go?

1 Like

The relevant log line:

(25/27) Installing go (1.7.4-r2)

Ahh yes… Didn’t think of that, normally alpine edge is fairly up to date… I guess I just need to wait for go 1.8 coming to alpine then ^^ Thank you matt and Whitestrake

Alpine has updated go yesterday, so this should be fixed now.
Edit: Can confirm, works now

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.