Addresses #9207
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
| 1 | 1 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,29 @@ |
| 0 |
+#!/bin/bash |
|
| 1 |
+set -e |
|
| 2 |
+ |
|
| 3 |
+IAMSTATIC="true" |
|
| 4 |
+source "$(dirname "$BASH_SOURCE")/.go-autogen" |
|
| 5 |
+ |
|
| 6 |
+go build --compiler=gccgo \ |
|
| 7 |
+ -o "$DEST/dockerinit-$VERSION" \ |
|
| 8 |
+ "${BUILDFLAGS[@]}" \
|
|
| 9 |
+ --gccgoflags " |
|
| 10 |
+ -g |
|
| 11 |
+ -Wl,--no-export-dynamic |
|
| 12 |
+ $EXTLDFLAGS_STATIC_DOCKER |
|
| 13 |
+ " \ |
|
| 14 |
+ ./dockerinit |
|
| 15 |
+ |
|
| 16 |
+echo "Created binary: $DEST/dockerinit-$VERSION" |
|
| 17 |
+ln -sf "dockerinit-$VERSION" "$DEST/dockerinit" |
|
| 18 |
+ |
|
| 19 |
+sha1sum= |
|
| 20 |
+if command -v sha1sum &> /dev/null; then |
|
| 21 |
+ sha1sum=sha1sum |
|
| 22 |
+else |
|
| 23 |
+ echo >&2 'error: cannot find sha1sum command or equivalent' |
|
| 24 |
+ exit 1 |
|
| 25 |
+fi |
|
| 26 |
+ |
|
| 27 |
+# sha1 our new dockerinit to ensure separate docker and dockerinit always run in a perfect pair compiled for one another |
|
| 28 |
+export DOCKER_INITSHA1="$($sha1sum $DEST/dockerinit-$VERSION | cut -d' ' -f1)" |
| ... | ... |
@@ -2,7 +2,7 @@ |
| 2 | 2 |
|
| 3 | 3 |
# see test-integration-cli for example usage of this script |
| 4 | 4 |
|
| 5 |
-export PATH="$DEST/../binary:$DEST/../dynbinary:$PATH" |
|
| 5 |
+export PATH="$DEST/../binary:$DEST/../dynbinary:$DEST/../gccgo:$PATH" |
|
| 6 | 6 |
|
| 7 | 7 |
if ! command -v docker &> /dev/null; then |
| 8 | 8 |
echo >&2 'error: binary or dynbinary must be run before .integration-daemon-start' |
| 9 | 9 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,23 @@ |
| 0 |
+#!/bin/bash |
|
| 1 |
+set -e |
|
| 2 |
+ |
|
| 3 |
+DEST=$1 |
|
| 4 |
+ |
|
| 5 |
+if [ -z "$DOCKER_CLIENTONLY" ]; then |
|
| 6 |
+ source "$(dirname "$BASH_SOURCE")/.dockerinit-gccgo" |
|
| 7 |
+ |
|
| 8 |
+ hash_files "$DEST/dockerinit-$VERSION" |
|
| 9 |
+else |
|
| 10 |
+ # DOCKER_CLIENTONLY must be truthy, so we don't need to bother with dockerinit :) |
|
| 11 |
+ export DOCKER_INITSHA1="" |
|
| 12 |
+fi |
|
| 13 |
+# DOCKER_INITSHA1 is exported so that other bundlescripts can easily access it later without recalculating it |
|
| 14 |
+ |
|
| 15 |
+( |
|
| 16 |
+ export IAMSTATIC="false" |
|
| 17 |
+ export EXTLDFLAGS_STATIC_DOCKER='' |
|
| 18 |
+ export LDFLAGS_STATIC_DOCKER='' |
|
| 19 |
+ export BUILDFLAGS=( "${BUILDFLAGS[@]/netgo /}" ) # disable netgo, since we don't need it for a dynamic binary
|
|
| 20 |
+ export BUILDFLAGS=( "${BUILDFLAGS[@]/static_build /}" ) # we're not building a "static" binary here
|
|
| 21 |
+ source "$(dirname "$BASH_SOURCE")/gccgo" |
|
| 22 |
+) |
| 0 | 23 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,26 @@ |
| 0 |
+#!/bin/bash |
|
| 1 |
+set -e |
|
| 2 |
+ |
|
| 3 |
+DEST=$1 |
|
| 4 |
+BINARY_NAME="docker-$VERSION" |
|
| 5 |
+BINARY_EXTENSION="$(binary_extension)" |
|
| 6 |
+BINARY_FULLNAME="$BINARY_NAME$BINARY_EXTENSION" |
|
| 7 |
+ |
|
| 8 |
+source "$(dirname "$BASH_SOURCE")/.go-autogen" |
|
| 9 |
+ |
|
| 10 |
+go build --compiler=gccgo \ |
|
| 11 |
+ -o "$DEST/$BINARY_FULLNAME" \ |
|
| 12 |
+ "${BUILDFLAGS[@]}" \
|
|
| 13 |
+ --gccgoflags " |
|
| 14 |
+ -g |
|
| 15 |
+ $EXTLDFLAGS_STATIC_DOCKER |
|
| 16 |
+ -Wl,--no-export-dynamic |
|
| 17 |
+ -ldl |
|
| 18 |
+ " \ |
|
| 19 |
+ ./docker |
|
| 20 |
+ |
|
| 21 |
+ |
|
| 22 |
+echo "Created binary: $DEST/$BINARY_FULLNAME" |
|
| 23 |
+ln -sf "$BINARY_FULLNAME" "$DEST/docker$BINARY_EXTENSION" |
|
| 24 |
+ |
|
| 25 |
+hash_files "$DEST/$BINARY_FULLNAME" |