diff --git a/.gitignore b/.gitignore index 16d90a3..d762e53 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ images/docker-arm/docker-1.9 images/docker-arm/backup/ +images/swarm-arm-builder/binary/ + diff --git a/images/go-arm1.5/Dockerfile b/images/go-arm1.5/Dockerfile new file mode 100644 index 0000000..5f98594 --- /dev/null +++ b/images/go-arm1.5/Dockerfile @@ -0,0 +1,16 @@ +FROM armhf/ubuntu +RUN apt-get update && apt-get -qy install git nano curl wget build-essential + +RUN wget \ + https://github.com/hypriot/golang-armbuilds/releases/download/v1.5.2/go1.5.2.linux-armv7.tar.gz +RUN tar -xf go*.tar.gz -C /usr/local/ + +ENV PATH \ +/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin +RUN mkdir /go +ENV GOPATH /go +ENV AUTO_GOPATH 1 +RUN go version +RUN AUTO_GOPATH=1 go get github.com/tools/godep + +CMD ["go version"] diff --git a/images/go-arm1.5/README.md b/images/go-arm1.5/README.md new file mode 100644 index 0000000..312d1ad --- /dev/null +++ b/images/go-arm1.5/README.md @@ -0,0 +1,3 @@ +go 1.5 for ARM, built out with the binary from @hypriot + +This image can be used to build docker swarm, godep etc. diff --git a/images/go-arm1.5/build.sh b/images/go-arm1.5/build.sh new file mode 100755 index 0000000..271da17 --- /dev/null +++ b/images/go-arm1.5/build.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +docker build -t alexellis2/go-arm:1.5 . + diff --git a/images/swarm-arm-builder/Dockerfile b/images/swarm-arm-builder/Dockerfile new file mode 100644 index 0000000..010bf2a --- /dev/null +++ b/images/swarm-arm-builder/Dockerfile @@ -0,0 +1,15 @@ +FROM alexellis2/go-arm:1.5 + +WORKDIR $GOPATH/src/github.com/docker/ +RUN git clone https://github.com/docker/swarm +WORKDIR $GOPATH/src/github.com/docker/swarm +RUN mkdir -p /usr/lib/go/pkg/linux_arm_netgo/ +ENV CGO_ENABLED 0 +ENV PATH \ +/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/go/bin + +RUN godep go install -v -a -tags netgo -installsuffix netgo -ldflags '-extldflags "-static" -s' . +WORKDIR /root/ +ADD ./export_binary.sh ./ + +CMD ["/go/bin/swarm", "--help"] diff --git a/images/swarm-arm-builder/README.md b/images/swarm-arm-builder/README.md new file mode 100644 index 0000000..9767fd6 --- /dev/null +++ b/images/swarm-arm-builder/README.md @@ -0,0 +1,10 @@ +Builds an ARM compatible docker swarm binary through Docker +============================================================ + +### Depends on alexellis2/arm-go:1.5 + +For the article, this is prebuilt and available in the swarm-arm folder. + +If you wish to rebuild its binary from source run build.sh and then copy ./binary/swarm to ../swarm-arm/ and +rebuild the container. + diff --git a/images/swarm-arm-builder/build.sh b/images/swarm-arm-builder/build.sh new file mode 100755 index 0000000..bcd2699 --- /dev/null +++ b/images/swarm-arm-builder/build.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +docker build -t alexellis2/swarm-arm-builder . +mkdir -p binary +docker run -v `pwd`/binary:/tmp/binary alexellis2/swarm-arm-builder /root/export_binary.sh + +echo "An ARM compatible swarm binary will now be found in the /binary folder" diff --git a/images/swarm-arm-builder/export_binary.sh b/images/swarm-arm-builder/export_binary.sh new file mode 100755 index 0000000..3c950d1 --- /dev/null +++ b/images/swarm-arm-builder/export_binary.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +cp /go/bin/swarm /tmp/binary/ +