Skip to content

Instantly share code, notes, and snippets.

@kaivanov
Created August 18, 2015 16:55
Show Gist options
  • Save kaivanov/61ef38c22d0c7a15df52 to your computer and use it in GitHub Desktop.
Save kaivanov/61ef38c22d0c7a15df52 to your computer and use it in GitHub Desktop.
root@nspawn:~# apt-get install -y build-essential git-core xfsprogs dbus debootstrap curl
root@nspawn:~# debootstrap --arch=amd64 jessie /var/lib/machines/redis/
root@nspawn:~# cd /usr/local/src
root@nspawn:/usr/local/src# git clone https://github.com/antirez/redis.git
root@nspawn:/usr/local/src/redis# cd redis
root@nspawn:/usr/local/src/redis# git fetch
root@nspawn:/usr/local/src/redis# git checkout -f 3.0.3
root@nspawn:/usr/local/src/redis# make distclean
root@nspawn:/usr/local/src/redis# CFLAGS=-march=native make -j4
root@nspawn:/usr/local/src/redis# mkdir -p /usr/local/bin/redis/3.0.3
root@nspawn:/usr/local/src/redis# cd src
root@nspawn:/usr/local/src/redis/src# ls redis-* | xargs file | grep executable | awk -F: '{print $1}' | xargs -I '{}' sudo /bin/mv '{}' /usr/local/bin/redis/3.0.3/
root@nspawn:/usr/local/src/redis/src# ln -s /etc/systemd/system/redistogo.include /etc/systemd/system/3.0.3\@.service
root@nspawn:/usr/local/src/redis# tee /etc/systemd/system/redis.include <<'EOF'
.include /etc/systemd/system/redis.service
EOF
root@nspawn:/usr/local/src/redis# tee /etc/systemd/system/redis.service <<'EOF'
[Unit]
Description=Redis in multiple containers
[Service]
LimitNOFILE=100000
ExecStart=/usr/bin/systemd-nspawn --user=redis --keep-unit --machine=redis-%p-%i -j --directory=/var/lib/machines/redis/ --bind=/usr/local/bin/redis/%p/:/bin/ --bind=/mnt --bind=/opt/null:/sbin --bind=/home/redis/%i redis-server /home/redis/%i/redis.conf
Restart=always
[Install]
Also=dbus.service
EOF
root@nspawn:~# useradd -s /bin/false -m redis
root@nspawn:~# useradd -s /bin/false -R /var/lib/machines/redis/ redis
root@nspawn:~# systemctl start 3.0.3@9000
root@nspawn:~# systemctl start 3.0.3@9001
root@nspawn:~# systemctl start 3.0.3@9002
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment