The default docker.io package in Debian 10 (buster) is broken. I used puppet and the puppetlabs-docker module to install the testing version of docker-ce. I then configured the Plex Media Server as a docker container also using puppet.
1. Run the following commands as root to install puppet
# wget http://apt.puppet.com/puppet5-release-$(lsb_release -sc).deb # dpkg -i puppet5-release-$(lsb_release -sc).deb # apt update # apt install puppet
2. Install the puppetlabs-docker module
# puppet module install puppetlabs-docker
3. Create a puppet manifest
test channel is used because a stable package for the armv7l architecture didn't exist yet
docker.pp
class { 'docker':
docker_ce_channel => 'test'
}
4. Apply the docker.pp puppet manifest to install and configure docker
# puppet apply --test docker.pp
5. Example: install and run the linuxserver/plex container by appending to the docker.pp file and applying the declarative manifest.
docker.pp
docker::run { 'plex':
image => 'linuxserver/plex',
net => 'host',
env => [
"PUID=1000",
"PGID=1000",
"VERSION=docker",
],
volumes => [
"/var/lib/plex/config:/config",
"/data/tv:/tv",
"/data/movies:/movies",
],
}
Create the directories and set the owner to match the UID of the container
# mkdir -p /var/lib/plex/config /data/tv /data/movies # chown -R 1000:1000 /var/lib/plex/config /data/tv /data/movies
# puppet apply --test docker.pp
6. You can then browse to the Plex webUI at http://raspberry.pi.ip.address:32400