Files
linuxkit/tools/alpine/Dockerfile
Rolf Neugebauer ac5122ced7 tools: Add Dockerfile to the Alpine base image to calculate the hash
The Dockerfile is now an input to the contents of the base image and
needs to be included in the hash calculation.

Also, make the Makefile, Dockerfile and pacakges file a dependency.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-26 15:50:54 +01:00

53 lines
1.6 KiB
Docker

FROM alpine:3.6 AS mirror
# update base image
RUN apk update && apk upgrade -a
# Copy Dockerfile so we can include it in the hash
COPY Dockerfile /Dockerfile
COPY packages /tmp/
# mirror packages
RUN mkdir -p /mirror/$(uname -m) && \
apk fetch --recursive -o /mirror/$(uname -m) $(apk info; cat /tmp/packages)
# install abuild for signing
RUN apk add --no-cache abuild
# install a new key into /etc/apk/keys
RUN abuild-keygen -a -i -n
# index the new repo
RUN apk index --rewrite-arch $(uname -m) -o /mirror/$(uname -m)/APKINDEX.unsigned.tar.gz /mirror/$(uname -m)/*.apk
# sign the index
RUN cp /mirror/$(uname -m)/APKINDEX.unsigned.tar.gz /mirror/$(uname -m)/APKINDEX.tar.gz
RUN abuild-sign /mirror/$(uname -m)/APKINDEX.tar.gz
# set this as our repo
RUN echo "/mirror" > /etc/apk/repositories && apk update
# add Go validation tools
COPY go-compile.sh /go/bin/
RUN apk add --no-cache git go musl-dev
ENV GOPATH=/go PATH=$PATH:/go/bin
RUN go get -u github.com/golang/lint/golint
RUN go get -u github.com/gordonklaus/ineffassign
RUN go get -u github.com/LK4D4/vndr
FROM koalaman/shellcheck:v0.4.6@sha256:191b61e5f436fc51f22faaf2f4e0f77799f75977c7210377dd73a1a0f99ef8bd AS shellcheck
FROM alpine:3.6
COPY --from=mirror /etc/apk/repositories /etc/apk/repositories
COPY --from=mirror /etc/apk/keys /etc/apk/keys/
COPY --from=mirror /mirror /mirror/
COPY --from=mirror /go/bin /go/bin/
COPY --from=mirror /Dockerfile /Dockerfile
COPY --from=shellcheck /usr/local/bin/shellcheck /usr/local/bin/shellcheck
COPY --from=shellcheck /usr/local/lib/ /usr/local/lib/
RUN apk update && apk upgrade -a