mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Add new "DOCKER_CLIENTONLY" build variable to allow skipping of the dockerinit compilation, especially for Homebrew / Mac OS X client-only compilation
Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)
This commit is contained in:
parent
be344cf0d8
commit
a40bb2aabc
2 changed files with 35 additions and 24 deletions
|
@ -181,6 +181,12 @@ the file "./VERSION". This binary is usually installed somewhere like
|
|||
|
||||
### Dynamic Daemon / Client-only Binary
|
||||
|
||||
If you are only interested in a Docker client binary, set `DOCKER_CLIENTONLY` to a non-empty value using something similar to the following: (which will prevent the extra step of compiling dockerinit)
|
||||
|
||||
```bash
|
||||
export DOCKER_CLIENTONLY=1
|
||||
```
|
||||
|
||||
If you need to (due to distro policy, distro library availability, or for other
|
||||
reasons) create a dynamically compiled daemon binary, or if you are only
|
||||
interested in creating a client binary for Docker, use something similar to the
|
||||
|
|
|
@ -2,32 +2,37 @@
|
|||
|
||||
DEST=$1
|
||||
|
||||
# dockerinit still needs to be a static binary, even if docker is dynamic
|
||||
go build \
|
||||
-o $DEST/dockerinit-$VERSION \
|
||||
"${BUILDFLAGS[@]}" \
|
||||
-ldflags "
|
||||
$LDFLAGS
|
||||
$LDFLAGS_STATIC
|
||||
-extldflags \"$EXTLDFLAGS_STATIC\"
|
||||
" \
|
||||
./dockerinit
|
||||
echo "Created binary: $DEST/dockerinit-$VERSION"
|
||||
ln -sf dockerinit-$VERSION $DEST/dockerinit
|
||||
|
||||
sha1sum=
|
||||
if command -v sha1sum &> /dev/null; then
|
||||
sha1sum=sha1sum
|
||||
elif command -v shasum &> /dev/null; then
|
||||
# Mac OS X - why couldn't they just use the same command name and be happy?
|
||||
sha1sum=shasum
|
||||
if [ -z "$DOCKER_CLIENTONLY" ]; then
|
||||
# dockerinit still needs to be a static binary, even if docker is dynamic
|
||||
go build \
|
||||
-o $DEST/dockerinit-$VERSION \
|
||||
"${BUILDFLAGS[@]}" \
|
||||
-ldflags "
|
||||
$LDFLAGS
|
||||
$LDFLAGS_STATIC
|
||||
-extldflags \"$EXTLDFLAGS_STATIC\"
|
||||
" \
|
||||
./dockerinit
|
||||
echo "Created binary: $DEST/dockerinit-$VERSION"
|
||||
ln -sf dockerinit-$VERSION $DEST/dockerinit
|
||||
|
||||
sha1sum=
|
||||
if command -v sha1sum &> /dev/null; then
|
||||
sha1sum=sha1sum
|
||||
elif command -v shasum &> /dev/null; then
|
||||
# Mac OS X - why couldn't they just use the same command name and be happy?
|
||||
sha1sum=shasum
|
||||
else
|
||||
echo >&2 'error: cannot find sha1sum command or equivalent'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# sha1 our new dockerinit to ensure separate docker and dockerinit always run in a perfect pair compiled for one another
|
||||
export DOCKER_INITSHA1="$($sha1sum $DEST/dockerinit-$VERSION | cut -d' ' -f1)"
|
||||
else
|
||||
echo >&2 'error: cannot find sha1sum command or equivalent'
|
||||
exit 1
|
||||
# DOCKER_CLIENTONLY must be truthy, so we don't need to bother with dockerinit :)
|
||||
export DOCKER_INITSHA1=""
|
||||
fi
|
||||
|
||||
# sha1 our new dockerinit to ensure separate docker and dockerinit always run in a perfect pair compiled for one another
|
||||
export DOCKER_INITSHA1="$($sha1sum $DEST/dockerinit-$VERSION | cut -d' ' -f1)"
|
||||
# exported so that "dyntest" can easily access it later without recalculating it
|
||||
|
||||
(
|
||||
|
|
Loading…
Add table
Reference in a new issue