- Added 'golint', 'yamllint', and 'swagger'
- Fixed man/Dockerfile.aarch64 by bootstrapping Go 1.7.5
Signed-off-by: Boris Pruessmann <boris@pruessmann.org>
| ... | ... |
@@ -15,7 +15,7 @@ |
| 15 | 15 |
# the case. Therefore, you don't have to disable it anymore. |
| 16 | 16 |
# |
| 17 | 17 |
|
| 18 |
-FROM aarch64/ubuntu:wily |
|
| 18 |
+FROM aarch64/ubuntu:xenial |
|
| 19 | 19 |
|
| 20 | 20 |
# Packaged dependencies |
| 21 | 21 |
RUN apt-get update && apt-get install -y \ |
| ... | ... |
@@ -39,6 +39,7 @@ RUN apt-get update && apt-get install -y \ |
| 39 | 39 |
libcap-dev \ |
| 40 | 40 |
libltdl-dev \ |
| 41 | 41 |
libsystemd-dev \ |
| 42 |
+ libyaml-dev \ |
|
| 42 | 43 |
mercurial \ |
| 43 | 44 |
net-tools \ |
| 44 | 45 |
parallel \ |
| ... | ... |
@@ -101,9 +102,20 @@ RUN mkdir /usr/src/go && curl -fsSL https://golang.org/dl/go${GO_VERSION}.src.ta
|
| 101 | 101 |
&& cd /usr/src/go/src \ |
| 102 | 102 |
&& GOOS=linux GOARCH=arm64 GOROOT_BOOTSTRAP="$(go env GOROOT)" ./make.bash |
| 103 | 103 |
|
| 104 |
-ENV PATH /usr/src/go/bin:$PATH |
|
| 104 |
+ENV PATH /go/bin:/usr/src/go/bin:$PATH |
|
| 105 | 105 |
ENV GOPATH /go |
| 106 | 106 |
|
| 107 |
+# Dependency for golint |
|
| 108 |
+ENV GO_TOOLS_COMMIT 823804e1ae08dbb14eb807afc7db9993bc9e3cc3 |
|
| 109 |
+RUN git clone https://github.com/golang/tools.git /go/src/golang.org/x/tools \ |
|
| 110 |
+ && (cd /go/src/golang.org/x/tools && git checkout -q $GO_TOOLS_COMMIT) |
|
| 111 |
+ |
|
| 112 |
+# Grab Go's lint tool |
|
| 113 |
+ENV GO_LINT_COMMIT 32a87160691b3c96046c0c678fe57c5bef761456 |
|
| 114 |
+RUN git clone https://github.com/golang/lint.git /go/src/github.com/golang/lint \ |
|
| 115 |
+ && (cd /go/src/github.com/golang/lint && git checkout -q $GO_LINT_COMMIT) \ |
|
| 116 |
+ && go install -v github.com/golang/lint/golint |
|
| 117 |
+ |
|
| 107 | 118 |
# Only install one version of the registry, because old version which support |
| 108 | 119 |
# schema1 manifests is not working on ARM64, we should skip integration-cli |
| 109 | 120 |
# tests for schema1 manifests on ARM64. |
| ... | ... |
@@ -135,6 +147,15 @@ RUN git clone https://github.com/docker/docker-py.git /docker-py \ |
| 135 | 135 |
&& git checkout -q $DOCKER_PY_COMMIT \ |
| 136 | 136 |
&& pip install -r test-requirements.txt |
| 137 | 137 |
|
| 138 |
+# Install yamllint for validating swagger.yaml |
|
| 139 |
+RUN pip install yamllint==1.5.0 |
|
| 140 |
+ |
|
| 141 |
+# Install go-swagger for validating swagger.yaml |
|
| 142 |
+ENV GO_SWAGGER_COMMIT c28258affb0b6251755d92489ef685af8d4ff3eb |
|
| 143 |
+RUN git clone https://github.com/go-swagger/go-swagger.git /go/src/github.com/go-swagger/go-swagger \ |
|
| 144 |
+ && (cd /go/src/github.com/go-swagger/go-swagger && git checkout -q $GO_SWAGGER_COMMIT) \ |
|
| 145 |
+ && go install -v github.com/go-swagger/go-swagger/cmd/swagger |
|
| 146 |
+ |
|
| 138 | 147 |
# Set user.email so crosbymichael's in-container merge commits go smoothly |
| 139 | 148 |
RUN git config --global user.email 'docker-dummy@example.com' |
| 140 | 149 |
|
| ... | ... |
@@ -1,6 +1,25 @@ |
| 1 | 1 |
FROM aarch64/ubuntu:xenial |
| 2 | 2 |
|
| 3 |
-RUN apt-get update && apt-get install -y git golang-go |
|
| 3 |
+# allow replacing httpredir or deb mirror |
|
| 4 |
+ARG APT_MIRROR=deb.debian.org |
|
| 5 |
+RUN sed -ri "s/(httpredir|deb).debian.org/$APT_MIRROR/g" /etc/apt/sources.list |
|
| 6 |
+ |
|
| 7 |
+RUN apt-get update && apt-get install -y \ |
|
| 8 |
+ git \ |
|
| 9 |
+ bash \ |
|
| 10 |
+ curl \ |
|
| 11 |
+ gcc \ |
|
| 12 |
+ gccgo \ |
|
| 13 |
+ make |
|
| 14 |
+ |
|
| 15 |
+ENV GO_VERSION 1.7.5 |
|
| 16 |
+ENV GOARCH arm64 |
|
| 17 |
+ENV PATH /go/bin:/usr/src/go/bin:$PATH |
|
| 18 |
+ |
|
| 19 |
+RUN mkdir /usr/src/go && \ |
|
| 20 |
+ curl -fsSL https://golang.org/dl/go${GO_VERSION}.src.tar.gz | tar -v -C /usr/src/go -xz --strip-components=1 && \
|
|
| 21 |
+ cd /usr/src/go/src && \ |
|
| 22 |
+ GOOS=linux GOARCH=arm64 GOROOT_BOOTSTRAP="$(go env GOROOT)" ./make.bash |
|
| 4 | 23 |
|
| 5 | 24 |
RUN mkdir -p /go/src /go/bin /go/pkg |
| 6 | 25 |
ENV GOPATH=/go |