File tree 4 files changed +38
-11
lines changed
4 files changed +38
-11
lines changed Original file line number Diff line number Diff line change 1
- FROM golang:1.11
1
+ FROM debian:stretch
2
2
3
3
SHELL ["/bin/bash" , "-uec" ]
4
4
@@ -11,6 +11,7 @@ RUN dpkg --add-architecture i386 \
11
11
mingw-w64 \
12
12
clang \
13
13
m4 file \
14
+ wget git \
14
15
&& apt clean \
15
16
&& rm -rf /var/lib/apt/lists
16
17
@@ -122,11 +123,35 @@ RUN wget http://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.bz2 \
122
123
&& popd \
123
124
&& rm -rf gcc*
124
125
126
+ ARG VERSION
125
127
ENV TAR="" \
126
128
VERBOSE="" \
127
129
LDFLAGS="" \
128
130
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
130
155
131
156
COPY loader /loader
132
157
@@ -136,8 +161,6 @@ ENTRYPOINT [ "/loader" ]
136
161
137
162
ARG BUILD_DATE
138
163
ARG VCS_REF
139
- # no effect here
140
- # ARG blah
141
164
142
165
LABEL org.label-schema.build-date=$BUILD_DATE \
143
166
org.label-schema.vcs-url="https://github.com/brimstone/docker-golang" \
Original file line number Diff line number Diff line change 1
- export IMAGE_NAME ?= brimstone/golang :latest
2
-
3
1
.PHONY : image
4
2
image :
5
3
hooks/build
8
6
clean :
9
7
-docker rmi golang-test-nocgo-onbuild
10
8
-docker rmi golang-test-cgo-onbuild
9
+ -rm -rf * .results
11
10
12
11
.PHONY : test
13
12
test :
Original file line number Diff line number Diff line change 1
1
#! /bin/bash
2
+ set -euo pipefail
2
3
4
+ IMAGE_NAME=brimstone/golang
5
+ for v in $( awk ' /goRelArch=/{gsub(")","",$1);print $1}' Dockerfile) ; do
3
6
# 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
Original file line number Diff line number Diff line change @@ -7,8 +7,8 @@ if [ "${GOOS}" = "linux" ]; then
7
7
if [ " ${GOARCH} " = " arm" ]; then
8
8
export CC=arm-linux-gnueabihf-gcc-6
9
9
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
12
12
fi
13
13
elif [ " ${GOOS} " = " windows" ]; then
14
14
LDFLAGS=" -s -w"
You can’t perform that action at this time.
0 commit comments