* change workdir for accessing install-binaries.sh
* use other gopath for binaries to preserve sources
* add sources of proxy and grimes to rpc spec
* use dynamic proxy with -linkmode external in deb and rpm
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
| ... | ... |
@@ -8,7 +8,16 @@ CONTAINERD_COMMIT=52ef1ceb4b660c42cf4ea9013180a5663968d4c7 |
| 8 | 8 |
GRIMES_COMMIT=74341e923bdf06cfb6b70cf54089c4d3ac87ec2d |
| 9 | 9 |
LIBNETWORK_COMMIT=0f534354b813003a754606689722fe253101bc4e |
| 10 | 10 |
|
| 11 |
-export GOPATH="$(mktemp -d)" |
|
| 11 |
+RM_GOPATH=0 |
|
| 12 |
+ |
|
| 13 |
+TMP_GOPATH=${TMP_GOPATH:-""}
|
|
| 14 |
+ |
|
| 15 |
+if [ -z "$TMP_GOPATH" ]; then |
|
| 16 |
+ export GOPATH="$(mktemp -d)" |
|
| 17 |
+ RM_GOPATH=1 |
|
| 18 |
+else |
|
| 19 |
+ export GOPATH="$TMP_GOPATH" |
|
| 20 |
+fi |
|
| 12 | 21 |
|
| 13 | 22 |
RUNC_BUILDTAGS="${RUNC_BUILDTAGS:-"seccomp apparmor selinux"}"
|
| 14 | 23 |
|
| ... | ... |
@@ -32,6 +41,14 @@ install_containerd() {
|
| 32 | 32 |
cp bin/ctr /usr/local/bin/docker-containerd-ctr |
| 33 | 33 |
} |
| 34 | 34 |
|
| 35 |
+install_proxy() {
|
|
| 36 |
+ echo "Install docker-proxy version $LIBNETWORK_COMMIT" |
|
| 37 |
+ git clone https://github.com/docker/libnetwork.git "$GOPATH/src/github.com/docker/libnetwork" |
|
| 38 |
+ cd "$GOPATH/src/github.com/docker/libnetwork" |
|
| 39 |
+ git checkout -q "$LIBNETWORK_COMMIT" |
|
| 40 |
+ go build -ldflags="$PROXY_LDFLAGS" -o /usr/local/bin/docker-proxy github.com/docker/libnetwork/cmd/proxy |
|
| 41 |
+} |
|
| 42 |
+ |
|
| 35 | 43 |
for prog in "$@" |
| 36 | 44 |
do |
| 37 | 45 |
case $prog in |
| ... | ... |
@@ -68,11 +85,12 @@ do |
| 68 | 68 |
;; |
| 69 | 69 |
|
| 70 | 70 |
proxy) |
| 71 |
- echo "Install docker-proxy version $LIBNETWORK_COMMIT" |
|
| 72 |
- git clone https://github.com/docker/libnetwork.git "$GOPATH/src/github.com/docker/libnetwork" |
|
| 73 |
- cd "$GOPATH/src/github.com/docker/libnetwork" |
|
| 74 |
- git checkout -q "$LIBNETWORK_COMMIT" |
|
| 75 |
- CGO_ENABLED=0 go build -v -o /usr/local/bin/docker-proxy github.com/docker/libnetwork/cmd/proxy |
|
| 71 |
+ export CGO_ENABLED=0 |
|
| 72 |
+ install_proxy |
|
| 73 |
+ ;; |
|
| 74 |
+ |
|
| 75 |
+ proxy-dynamic) |
|
| 76 |
+ PROXY_LDFLAGS="-linkmode=external" install_proxy |
|
| 76 | 77 |
;; |
| 77 | 78 |
|
| 78 | 79 |
*) |
| ... | ... |
@@ -82,4 +100,6 @@ do |
| 82 | 82 |
esac |
| 83 | 83 |
done |
| 84 | 84 |
|
| 85 |
-rm -rf "$GOPATH" |
|
| 85 |
+if [ $RM_GOPATH -eq 1 ]; then |
|
| 86 |
+ rm -rf "$GOPATH" |
|
| 87 |
+fi |
| ... | ... |
@@ -195,6 +195,7 @@ install -p -m 644 contrib/syntax/nano/Dockerfile.nanorc $RPM_BUILD_ROOT/usr/shar |
| 195 | 195 |
/%{_bindir}/docker-containerd-ctr
|
| 196 | 196 |
/%{_bindir}/docker-proxy
|
| 197 | 197 |
/%{_bindir}/docker-runc
|
| 198 |
+/%{_bindir}/docker-init
|
|
| 198 | 199 |
/%{_sysconfdir}/udev/rules.d/80-docker.rules
|
| 199 | 200 |
%if 0%{?is_systemd}
|
| 200 | 201 |
/%{_unitdir}/docker.service
|
| ... | ... |
@@ -74,7 +74,7 @@ set -e |
| 74 | 74 |
|
| 75 | 75 |
cat >> "$DEST/$version/Dockerfile.build" <<-EOF |
| 76 | 76 |
# Install runc, containerd, proxy and grimes |
| 77 |
- RUN ./hack/dockerfile/install-binaries.sh runc-dynamic containerd-dynamic proxy grimes |
|
| 77 |
+ RUN ./hack/dockerfile/install-binaries.sh runc-dynamic containerd-dynamic proxy-dynamic grimes |
|
| 78 | 78 |
EOF |
| 79 | 79 |
cat >> "$DEST/$version/Dockerfile.build" <<-EOF |
| 80 | 80 |
RUN cp -aL hack/make/.build-deb debian |
| ... | ... |
@@ -89,12 +89,13 @@ set -e |
| 89 | 89 |
cat > "$DEST/$version/Dockerfile.build" <<-EOF |
| 90 | 90 |
FROM $image |
| 91 | 91 |
COPY . /usr/src/${rpmName}
|
| 92 |
+ WORKDIR /usr/src/${rpmName}
|
|
| 92 | 93 |
RUN mkdir -p /go/src/github.com/docker && mkdir -p /go/src/github.com/opencontainers |
| 93 | 94 |
EOF |
| 94 | 95 |
|
| 95 | 96 |
cat >> "$DEST/$version/Dockerfile.build" <<-EOF |
| 96 | 97 |
# Install runc, containerd, proxy and grimes |
| 97 |
- RUN ./hack/dockerfile/install-binaries.sh runc-dynamic containerd-dynamic proxy grimes |
|
| 98 |
+ RUN TMP_GOPATH="/go" ./hack/dockerfile/install-binaries.sh runc-dynamic containerd-dynamic proxy-dynamic grimes |
|
| 98 | 99 |
EOF |
| 99 | 100 |
if [[ "$VERSION" == *-dev ]] || [ -n "$(git status --porcelain)" ]; then |
| 100 | 101 |
echo 'ENV DOCKER_EXPERIMENTAL 1' >> "$DEST/$version/Dockerfile.build" |
| ... | ... |
@@ -107,7 +108,9 @@ set -e |
| 107 | 107 |
WORKDIR /root/rpmbuild/SPECS |
| 108 | 108 |
RUN tar --exclude .git -r -C /usr/src -f /root/rpmbuild/SOURCES/${rpmName}.tar ${rpmName}
|
| 109 | 109 |
RUN tar --exclude .git -r -C /go/src/github.com/docker -f /root/rpmbuild/SOURCES/${rpmName}.tar containerd
|
| 110 |
+ RUN tar --exclude .git -r -C /go/src/github.com/docker/libnetwork/cmd -f /root/rpmbuild/SOURCES/${rpmName}.tar proxy
|
|
| 110 | 111 |
RUN tar --exclude .git -r -C /go/src/github.com/opencontainers -f /root/rpmbuild/SOURCES/${rpmName}.tar runc
|
| 112 |
+ RUN tar --exclude .git -r -C /go/ -f /root/rpmbuild/SOURCES/${rpmName}.tar grimes
|
|
| 111 | 113 |
RUN gzip /root/rpmbuild/SOURCES/${rpmName}.tar
|
| 112 | 114 |
RUN { cat /usr/src/${rpmName}/contrib/builder/rpm/${PACKAGE_ARCH}/changelog; } >> ${rpmName}.spec && tail >&2 ${rpmName}.spec
|
| 113 | 115 |
RUN rpmbuild -ba \ |