Podman : un conteneur pour Syncthing
Rédigé par Alexandre le 2023-12-19
Mis à jour le 08/01/2024
J'ai joué plusieurs fois avec docker sans tirer satisfaction de cet outil que beaucoup de monde plébiscite.
Dernièrement, j'ai eu l'occasion de jouer avec podman une alternative à docker que je trouve propre.
Dans la suite de cette article, j'explique comment créer un conteneur podman pour Syncthing. J'utilise syncthing depuis plusieurs années pour synchroniser plusieurs de mes appareils dont mon smartphone sous Android.
Installer podman en suivant la documentation officielle.
Créer le dossier de définition des conteneurs :
$ mkdir -p ~/.config/containers/systemd/
Créer le volume de stockage des données :
podman volume create syncthing
NB : les données du volume seront dans le dossier .local/share/containers/storage/volumes/syncthing/_data
.
Définir un conteneur :
$ tee ~/.config/containers/systemd/podman-syncthing.container <<EOF
[Unit]
Description=Syncthing container
ConditionPathIsMountPoint=/mnt/data
[Container]
Image=docker.io/syncthing/syncthing:latest
ContainerName=syncthing
AutoUpdate=registry
Volume=syncthing:/var/syncthing
HostName=ceto
PublishPort=8384:8384/tcp
PublishPort=22000:22000/tcp
PublishPort=22000:22000/udp
PublishPort=21027:21027/udp
[Service]
Restart=on-failure
TimeoutStartSec=900
[Install]
WantedBy=default.target
EOF
Recharger la liste des units pour générer le service qui correspond au fichier de définition du conteneur :
$ systemctl --user daemon-reload
Activer et démarrer le conteneur :
$ systemctl --user enable podman-syncthing.service --now
L'état du conteneur peut-être vérifié comme celui de n'importe quel unit systemd avec la commande :
$ systemctl --user status podman-syncthing.service
Avec la définition du conteneur que j'utilise, syncthing est maintenant accessible en local via http://127.0.0.1:8384. Les échanges se font en TCP et UDP sur le port 22000 qu'il faudra rendre accessible aux autres appareils.