Skip to content
Kev++ edited this page Apr 7, 2017 · 39 revisions

SEE ALSO: https://github.com/vimagick/dockerfiles/tree/master/docker-compose-arm

Preparation

# AlarmPi
pacman -S --needed --noconfirm base-devel python
# Raspbian
apt-get install -y python3-dev
curl https://bootstrap.pypa.io/get-pip.py | python3
pip install virtualenvwrapper
chmod 777 /usr/local/bin

AlarmPi

#!/bin/bash
#
# Build docker-compose binary for ARM on AlarmPi
#

(($(id -u) == 0)) && echo 'cannot run as root' && exit 1

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
. /usr/bin/virtualenvwrapper.sh
mktmpenv
cdsitepackages

pip install docker-compose==1.12.0 pyinstaller==3.2.1
pip download --no-binary :all: --no-deps pyinstaller==3.2.1
tar xjf PyInstaller-*.tar.bz2
cd PyInstaller-*/bootloader
./waf all --no-lsb
cp -r ../PyInstaller/bootloader/Linux-32bit-arm/ ../../PyInstaller/bootloader/
 
cdsitepackages
mkdir bin
curl -sSL https://github.com/docker/compose/raw/1.12.0/docker-compose.spec > docker-compose.spec
curl -sSL https://github.com/docker/compose/raw/1.12.0/bin/docker-compose > bin/docker-compose
 
pyinstaller docker-compose.spec
cp docker-compose/dist/docker-compose /usr/local/bin/
chmod +x /usr/local/bin/docker-compose
ln -sf /usr/local/bin/{docker-compose,fig}
fig --version
deactivate

Raspbian

#!/bin/bash
#
# Build docker-compose binary for ARM on Raspbian
#

(($(id -u) == 0)) && echo 'cannot run as root' && exit 1

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
. /usr/local/bin/virtualenvwrapper.sh
mktmpenv
cdsitepackages
 
pip install docker-compose==1.12.0 pyinstaller==3.2.1
pip download --no-binary :all: --no-deps pyinstaller==3.2.1
tar xjf PyInstaller-*.tar.bz2
cd PyInstaller-*/bootloader
./waf all --no-lsb
cp -r ../PyInstaller/bootloader/Linux-32bit-arm/ ../../PyInstaller/bootloader/
 
cdsitepackages
mkdir bin
curl -sSL https://github.com/docker/compose/raw/1.12.0/docker-compose.spec > docker-compose.spec
curl -sSL https://github.com/docker/compose/raw/1.12.0/bin/docker-compose > bin/docker-compose

pyinstaller docker-compose.spec
cp docker-compose/dist/docker-compose /usr/local/bin/
chmod +x /usr/local/bin/docker-compose
ln -sf /usr/local/bin/{docker-compose,fig}
fig --version
#deactivate
#!/bin/bash

curl https://bootstrap.pypa.io/get-pip.py | python3
pip install virtualenvwrapper
apt install -y build-essential python3-dev
chmod 777 /usr/local/bin/
su -l pi
bash -x /tmp/build-docker-compose.sh

Package

$ mkdir -p docker-compose/{DEBIAN,usr/bin}/
$ touch docker-compose/DEBIAN/{control,postinst,postrm}
$ chmod +x docker-compose/DEBIAN/{postinst,postrm}
$ cp /usr/local/bin/docker-compose docker-compose/usr/bin/

$ tree -F docker-compose/
docker-compose/
├── DEBIAN/
│   ├── control
│   ├── postinst*
│   └── postrm*
└── usr/
    └── bin/
        └── docker-compose*

$ dpkg -b docker-compose docker-compose_1.12.0-1_armhf.deb
dpkg-deb: building package 'docker-compose' in 'docker-compose_1.12.0-1_armhf.deb'.

$ dpkg -i docker-compose_1.11.2-1_armhf.deb

$ fig --version

file: control

Package: docker-compose
Version: 1.12.0-1
Maintainer: noreply@easypi.info
Homepage: https://github.com/docker/compose
Architecture: armhf
Priority: optional
Section: utils
Description: Define and run multi-container applications with Docker

file: postinst

#!/bin/bash

cd /usr/bin/
ln -s docker-compose fig

file: postrm

#!/bin/bash

cd /usr/bin/
rm -f fig
Clone this wiki locally