Flash an sd card with the Pine64 DietPi compatible on "Downloads" section. http://dietpi.com/
Configuring
- ssh into it: "Ok" and wait for initial update, it will reboot after
- It will start on config screen again, so enter DietPi-Config > Advanced Options > Update firmware
- Change DietPi-Config > locale, lang, keyboard configs if needed
- Go to DietPi-Config > Security Options and change root pass and hostname
- You could mark some software to install, switch ssh server and more, but I want a headless / server instalation, so I'll go to "Install" without choosing additional softwares to install, to finish my instalation.
Add my ssh key
mkdir -p ~/.ssh/
echo "MY PUBLIC KEY CONTENTS (~/.ssh/id_rsa.pub)" > ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Install Docker
# Since we don't have an aarch64 package (https://gist.github.com/douglasmiranda/41c582be2e216f09e1c1081a69e66f87)
wget https://github.com/douglas-archives/stuff/blob/master/docker-ce_17.07.0~ce~rc1-0~debian_arm64.deb?raw=true -O docker-ce_17.07.0~ce~rc1-0~debian_arm64.deb
# Dependencies
apt-get install libapparmor1 libltdl7 libseccomp2
dpkg -i docker-ce_17.07.0~ce~rc1-0~debian_arm64.deb
rm docker-ce_17.07.0~ce~rc1-0~debian_arm64.deb
Let's see Docker in action
Just try with some aarch64 image:
docker run -it arm64v8/alpine sh
Docker Compose
You could install Docker Compose any way you like, I'll install like this:
# Installing essential of python2
apt-get install python-minimal
# Python Package Installer
curl https://bootstrap.pypa.io/get-pip.py | python
# Yes, I like to keep everything under control
# pipsi requires this too
pip install virtualenv
# pipsi is a wrapper around virtualenv and pip which installs scripts provided by python packages into separate virtualenvs to shield them from your system and each other
curl https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get-pipsi.py | python
echo "export PATH=/root/.local/bin:\$PATH" >> ~/.bashrc
pipsi install docker-compose
# In case I need to edit inside the Pi
apt-get install -y vim.tiny
Just create a docker-compose.yml with:
version: "2"
services:
app:
image: arm64v8/alpine
volumes:
- "./:/app"
command: ["sleep", "99999"]
docker-compose up -d
docker-compose exec app sh