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
|
@ -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
|
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 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
|
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
|
# Ubuntu stuff
|
||||||
RUN apt-get install -y -q ruby1.9.3 rubygems libffi-dev
|
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
|
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
|
binary: build
|
||||||
$(DOCKER_RUN_DOCKER) hack/make.sh binary
|
$(DOCKER_RUN_DOCKER) hack/make.sh binary
|
||||||
|
|
||||||
|
cross: build
|
||||||
|
$(DOCKER_RUN_DOCKER) hack/make.sh cross
|
||||||
|
|
||||||
docs:
|
docs:
|
||||||
docker build -t docker-docs docs && docker run -p 8000:8000 docker-docs
|
docker build -t docker-docs docs && docker run -p 8000:8000 docker-docs
|
||||||
|
|
||||||
|
|
|
@ -40,6 +40,7 @@ DEFAULT_BUNDLES=(
|
||||||
dyntest
|
dyntest
|
||||||
dyntest-integration
|
dyntest-integration
|
||||||
cover
|
cover
|
||||||
|
cross
|
||||||
tgz
|
tgz
|
||||||
ubuntu
|
ubuntu
|
||||||
)
|
)
|
||||||
|
|
|
@ -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=(
|
RELEASE_BUNDLES=(
|
||||||
binary
|
binary
|
||||||
|
cross
|
||||||
tgz
|
tgz
|
||||||
ubuntu
|
ubuntu
|
||||||
)
|
)
|
||||||
|
@ -233,6 +234,16 @@ EOF
|
||||||
fi
|
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
|
# Upload the index script
|
||||||
release_index() {
|
release_index() {
|
||||||
sed "s,https://get.docker.io/,$(s3_url)/," hack/install.sh | write_to_s3 s3://$BUCKET/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() {
|
main() {
|
||||||
setup_s3
|
setup_s3
|
||||||
release_binary
|
release_binary
|
||||||
|
release_cross
|
||||||
release_tgz
|
release_tgz
|
||||||
release_ubuntu
|
release_ubuntu
|
||||||
release_index
|
release_index
|
||||||
|
|
Loading…
Reference in New Issue