FROM golang

# Install libraries
RUN go get \
	github.com/docker/distribution/reference \
	github.com/docker/go-units \
	github.com/gogo/protobuf/proto \
	github.com/opencontainers/go-digest \
	github.com/opencontainers/image-spec/specs-go/v1 \
	github.com/pkg/errors \
	golang.org/x/net/context/ctxhttp \
	golang.org/x/net/proxy \
	github.com/docker/docker/api/types \
	github.com/docker/docker/api/types/container \
	github.com/docker/docker/api/types/network \
	github.com/docker/docker/client \
	github.com/docker/go-connections/nat \
	github.com/gorilla/mux

# Vendor cleanup - thanks golang.
# see: https://github.com/moby/moby/issues/28269
RUN rm -rf \
    $GOPATH/src/github.com/docker/docker/vendor \
    $GOPATH/src/github.com/docker/distribution/vendor

# Create workdir
RUN mkdir /workdir
WORKDIR /workdir

# Copy our sources
COPY src /workdir/src
COPY hosted /workdir/hosted
# and build them
RUN go build -o /workdir/companion src/*.go

ENTRYPOINT [ "/workdir/companion" ]