Add new "cross" bundle to cross-compile the Docker client for other platforms (currently just 32-bit and 64-bit OS X)
This commit is contained in:
parent
e829d5b6d2
commit
62a81370ff
5 changed files with 36 additions and 2 deletions
|
@ -39,7 +39,12 @@ RUN apt-get install -y -q build-essential libsqlite3-dev
|
|||
RUN curl -s https://go.googlecode.com/files/go1.2.src.tar.gz | tar -v -C /usr/local -xz
|
||||
ENV PATH /usr/local/go/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
|
||||
ENV GOPATH /go:/go/src/github.com/dotcloud/docker/vendor
|
||||
RUN cd /usr/local/go/src && ./make.bash
|
||||
RUN cd /usr/local/go/src && ./make.bash --no-clean 2>&1
|
||||
|
||||
# Cross compilation
|
||||
ENV DOCKER_CROSSPLATFORMS darwin/amd64 darwin/386
|
||||
# TODO add linux/386 and linux/arm
|
||||
RUN cd /usr/local/go/src && bash -xc 'for platform in $DOCKER_CROSSPLATFORMS; do GOOS=${platform%/*} GOARCH=${platform##*/} ./make.bash --no-clean 2>&1; done'
|
||||
|
||||
# Ubuntu stuff
|
||||
RUN apt-get install -y -q ruby1.9.3 rubygems libffi-dev
|
||||
|
|
5
Makefile
5
Makefile
|
@ -1,4 +1,4 @@
|
|||
.PHONY: all binary build default docs shell test
|
||||
.PHONY: all binary build cross default docs shell test
|
||||
|
||||
DOCKER_RUN_DOCKER := docker run -rm -i -t -privileged -e TESTFLAGS -v $(CURDIR)/bundles:/go/src/github.com/dotcloud/docker/bundles docker
|
||||
|
||||
|
@ -10,6 +10,9 @@ all: build
|
|||
binary: build
|
||||
$(DOCKER_RUN_DOCKER) hack/make.sh binary
|
||||
|
||||
cross: build
|
||||
$(DOCKER_RUN_DOCKER) hack/make.sh cross
|
||||
|
||||
docs:
|
||||
docker build -t docker-docs docs && docker run -p 8000:8000 docker-docs
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@ DEFAULT_BUNDLES=(
|
|||
dyntest
|
||||
dyntest-integration
|
||||
cover
|
||||
cross
|
||||
tgz
|
||||
ubuntu
|
||||
)
|
||||
|
|
13
hack/make/cross
Normal file
13
hack/make/cross
Normal file
|
@ -0,0 +1,13 @@
|
|||
#!/bin/bash
|
||||
|
||||
DEST=$1
|
||||
|
||||
for platform in $DOCKER_CROSSPLATFORMS; do
|
||||
(
|
||||
export GOOS=${platform%/*}
|
||||
export GOARCH=${platform##*/}
|
||||
export VERSION="$GOOS-$GOARCH-$VERSION" # for a nice filename
|
||||
export LDFLAGS_STATIC="" # we just need a simple client for these platforms (TODO this might change someday)
|
||||
source "$(dirname "$BASH_SOURCE")/binary"
|
||||
)
|
||||
done
|
|
@ -47,6 +47,7 @@ cd /go/src/github.com/dotcloud/docker
|
|||
|
||||
RELEASE_BUNDLES=(
|
||||
binary
|
||||
cross
|
||||
tgz
|
||||
ubuntu
|
||||
)
|
||||
|
@ -233,6 +234,16 @@ EOF
|
|||
fi
|
||||
}
|
||||
|
||||
# Upload a cross-compiled client binaries to S3
|
||||
release_cross() {
|
||||
[ -e bundles/$VERSION/cross ] || {
|
||||
echo >&2 './hack/make.sh must be run before release_binary'
|
||||
exit 1
|
||||
}
|
||||
|
||||
# TODO find out from @shykes what URLs he'd like to use here
|
||||
}
|
||||
|
||||
# Upload the index script
|
||||
release_index() {
|
||||
sed "s,https://get.docker.io/,$(s3_url)/," hack/install.sh | write_to_s3 s3://$BUCKET/index
|
||||
|
@ -247,6 +258,7 @@ release_test() {
|
|||
main() {
|
||||
setup_s3
|
||||
release_binary
|
||||
release_cross
|
||||
release_tgz
|
||||
release_ubuntu
|
||||
release_index
|
||||
|
|
Loading…
Reference in a new issue