Skip to content

Commit 6eef630

Browse files
committed
A little clean up, re-enabled musl for amd64 builds, and built 1.10.4 and 1.11.1
1 parent 2d54d85 commit 6eef630

File tree

4 files changed

+38
-11
lines changed

4 files changed

+38
-11
lines changed

Dockerfile

+27-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM golang:1.11
1+
FROM debian:stretch
22

33
SHELL ["/bin/bash", "-uec"]
44

@@ -11,6 +11,7 @@ RUN dpkg --add-architecture i386 \
1111
mingw-w64 \
1212
clang \
1313
m4 file \
14+
wget git \
1415
&& apt clean \
1516
&& rm -rf /var/lib/apt/lists
1617

@@ -122,11 +123,35 @@ RUN wget http://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.bz2 \
122123
&& popd \
123124
&& rm -rf gcc*
124125

126+
ARG VERSION
125127
ENV TAR="" \
126128
VERBOSE="" \
127129
LDFLAGS="" \
128130
GOARCH="amd64" \
129-
GOOS="linux"
131+
GOOS="linux" \
132+
GOLANG_VERSION="${VERSION}"
133+
134+
RUN case "${GOLANG_VERSION}" in \
135+
1.10.4) goRelArch='linux-amd64'; goRelSha256='fa04efdb17a275a0c6e137f969a1c4eb878939e91e1da16060ce42f02c2ec5ec' ;; \
136+
1.11.1) goRelArch='linux-amd64'; goRelSha256='2871270d8ff0c8c69f161aaae42f9f28739855ff5c5204752a8d92a1c9f63993' ;; \
137+
*) \
138+
echo >&2; echo >&2 "warning: current architecture ($dpkgArch) does not have a corresponding Go binary release; will be building from source"; echo >&2 ;; \
139+
esac; \
140+
\
141+
url="https://golang.org/dl/go${GOLANG_VERSION}.${goRelArch}.tar.gz"; \
142+
wget -O go.tgz "$url"; \
143+
echo "${goRelSha256} *go.tgz" | sha256sum -c -; \
144+
tar -C /usr/local -xzf go.tgz; \
145+
rm go.tgz; \
146+
\
147+
export PATH="/usr/local/go/bin:$PATH"; \
148+
go version
149+
150+
ENV GOPATH /go
151+
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
152+
153+
RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH"
154+
WORKDIR $GOPATH
130155

131156
COPY loader /loader
132157

@@ -136,8 +161,6 @@ ENTRYPOINT [ "/loader" ]
136161

137162
ARG BUILD_DATE
138163
ARG VCS_REF
139-
# no effect here
140-
#ARG blah
141164

142165
LABEL org.label-schema.build-date=$BUILD_DATE \
143166
org.label-schema.vcs-url="https://github.com/brimstone/docker-golang" \

Makefile

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
export IMAGE_NAME ?= brimstone/golang:latest
2-
31
.PHONY: image
42
image:
53
hooks/build
@@ -8,6 +6,7 @@ image:
86
clean:
97
-docker rmi golang-test-nocgo-onbuild
108
-docker rmi golang-test-cgo-onbuild
9+
-rm -rf *.results
1110

1211
.PHONY: test
1312
test:

hooks/build

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
#!/bin/bash
2+
set -euo pipefail
23

4+
IMAGE_NAME=brimstone/golang
5+
for v in $(awk '/goRelArch=/{gsub(")","",$1);print $1}' Dockerfile); do
36
# stolen from https://medium.com/microscaling-systems/labelling-automated-builds-on-docker-hub-f3d073fb8e1
4-
docker build --build-arg VCS_REF="$(git rev-parse --short HEAD)" \
5-
--build-arg BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \
6-
-t "$IMAGE_NAME" .
7+
docker build --build-arg VCS_REF="$(git rev-parse --short HEAD)" \
8+
--build-arg BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \
9+
--build-arg VERSION=$v \
10+
-t "$IMAGE_NAME:$v" .
11+
done

loader

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ if [ "${GOOS}" = "linux" ]; then
77
if [ "${GOARCH}" = "arm" ]; then
88
export CC=arm-linux-gnueabihf-gcc-6
99
export CXX=arm-linux-gnueabihf-g++-6
10-
#elif [ "${GOARCH}" = "amd64" ]; then
11-
#export CC=/usr/local/musl/bin/musl-gcc
10+
elif [ "${GOARCH}" = "amd64" ]; then
11+
export CC=/usr/local/musl/bin/musl-gcc
1212
fi
1313
elif [ "${GOOS}" = "windows" ]; then
1414
LDFLAGS="-s -w"

0 commit comments

Comments
 (0)