Dockerfile.golang-tip 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # Based on docker-library's golang 1.6 alpine and wheezy docker files.
  2. # https://github.com/docker-library/golang/blob/master/1.6/alpine/Dockerfile
  3. # https://github.com/docker-library/golang/blob/master/1.6/wheezy/Dockerfile
  4. FROM buildpack-deps:wheezy-scm
  5. ENV GOLANG_VERSION tip
  6. ENV GOLANG_SRC_REPO_URL https://go.googlesource.com/go
  7. ENV GOLANG_BOOTSTRAP_URL https://storage.googleapis.com/golang/go1.4.3.linux-amd64.tar.gz
  8. ENV GOLANG_BOOTSTRAP_SHA256 ce3140662f45356eb78bc16a88fc7cfb29fb00e18d7c632608245b789b2086d2
  9. ENV GOLANG_BOOTSTRAP_PATH /usr/local/bootstrap
  10. # gcc for cgo
  11. RUN apt-get update && apt-get install -y --no-install-recommends \
  12. g++ \
  13. gcc \
  14. libc6-dev \
  15. make \
  16. git \
  17. && rm -rf /var/lib/apt/lists/*
  18. # Setup the Bootstrap
  19. RUN mkdir -p "$GOLANG_BOOTSTRAP_PATH" \
  20. && curl -fsSL "$GOLANG_BOOTSTRAP_URL" -o golang.tar.gz \
  21. && echo "$GOLANG_BOOTSTRAP_SHA256 golang.tar.gz" | sha256sum -c - \
  22. && tar -C "$GOLANG_BOOTSTRAP_PATH" -xzf golang.tar.gz \
  23. && rm golang.tar.gz
  24. # Get and build Go tip
  25. RUN export GOROOT_BOOTSTRAP=$GOLANG_BOOTSTRAP_PATH/go \
  26. && git clone "$GOLANG_SRC_REPO_URL" /usr/local/go \
  27. && cd /usr/local/go/src \
  28. && ./make.bash \
  29. && rm -rf "$GOLANG_BOOTSTRAP_PATH" /usr/local/go/pkg/bootstrap
  30. # Build Go workspace and environment
  31. ENV GOPATH /go
  32. ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
  33. RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" \
  34. && chmod -R 777 "$GOPATH"
  35. WORKDIR $GOPATH