FROM golang:alpine AS build
ARG VERSION
RUN wget \
  --output-document "/cointop-$VERSION.tar.gz" \
  "https://github.com/cointop-sh/cointop/archive/refs/tags/$VERSION.tar.gz" \
&& wget \
  --output-document "/cointop-colors-master.tar.gz" \
  "https://github.com/cointop-sh/colors/archive/master.tar.gz" \
&& mkdir --parents \
  "$GOPATH/src/github.com/cointop-sh/cointop" \
  "/usr/local/share/cointop/colors" \
&& tar \
  --directory "$GOPATH/src/github.com/cointop-sh/cointop" \
  --extract \
  --file "/cointop-$VERSION.tar.gz" \
  --strip-components 1 \
&& tar \
  --directory /usr/local/share/cointop/colors \
  --extract \
  --file /cointop-colors-master.tar.gz \
  --strip-components 1 \
&& rm \
  "/cointop-$VERSION.tar.gz" \
  /cointop-colors-master.tar.gz \
&& cd "$GOPATH/src/github.com/cointop-sh/cointop" \
&& CGO_ENABLED=0 go install -ldflags "-s -w -X 'github.com/cointop-sh/cointop/cointop.version=$VERSION'" \
&& cd "$GOPATH" \
&& rm -r src/github.com \
&& apk add --no-cache upx \
&& upx --lzma /go/bin/cointop \
&& apk del upx

FROM busybox
ARG VERSION
ARG MAINTAINER
COPY --from=build /etc/ssl/certs /etc/ssl/certs
COPY --from=build /go/bin/cointop /usr/local/bin/cointop
COPY --from=build /usr/local/share /usr/local/share
ENV \
  COINTOP_COLORS_DIR=/usr/local/share/cointop/colors \
  XDG_CONFIG_HOME=/config
EXPOSE 2222
LABEL \
  maintainer="$MAINTAINER" \
  version="$VERSION"
ENTRYPOINT ["cointop"]
