---
# System prepended metadata

title: 'sregistry: Deployment mit podman-compose'
tags: [podman-compose, singularity, sregistry, container, podman]

---

# sregistry: Deployment mit podman-compose

###### tags: `sregistry` `podman-compose` `podman` `container` `singularity`

> [time=Fri, Nov 12, 2021 11:01 CET] [name=Cedric Casper] [name=Kevin Kaftan]

## Vorarbeiten

### Richtige Filesystem-Berechtigungen setzen

**Zum Zeitpunkt der Erstellung braucht nur Minio diese spezifische Aenderung. Die Ordner sregistry/images und sregistry/static muessen dem User gehoeren, der Podman startet, z.B. ubuntu.**

Innerhalb des betreffenden Containers kann `cat /proc/self/uid_map` ausgefuehrt werden, um zu sehen, welche User innerhalb des Containers gemapt sind. z.B. nutzt Minio fuer seine Aktivitaeten den User mit UID 1.
Die Berechtigungen fuer den Ordner auf dem Host-System koennen daraufhin mit dem Befehl `podman unshare chown -R UID:UID /path/to/folder` geaendert werden, z.B. `podman unshare chown -R 1:1 minio-images`.

### Privilegierten Port 443 freigeben
Podman als unprivilegierten Prozess kann standardmaessig nur Ports >1024 oeffnen, daher muss die Grenze der privilegierten Ports heruntergesetzt werden.
Einmalig heruntersetzen bis zum naechsten Reboot:
```bash
sudo sh -c "echo 0 > /proc/sys/net/ipv4/ip_unprivileged_port_start"
```
Dauerhaft heruntersetzen, Reboot notwendig um die Aenderung anzuwenden:
```bash
echo "net.ipv4.ip_unprivileged_port_start=443" >> /etc/sysctl.conf
```

### PostgreSQL: persistente Datenspeicherung
Das Deployment namens "db" (PostgreSQL Datenbank) hat im Gegensatz zum Docker-Compose File persistenten Speicher bekommen. Der Ordner für die Datenbank liegt in `sregistry/postgresql/data` und ist auf den Ordner `/var/lib/postgresql/data` im PostgreSQL Container gemapt. Somit müssen die Daten nicht aus einem Backup geholt werden.

## Voraussetzungen

Es bestehen an sich keine Voraussetzungen. Die allgemeinen Einstellungen muessen natuerlich geaendert werden. Innerhalb des sregistry-Ordners kann dann `podman-compose up` ausgefuehrt werden.

## Deployment

`podman-compose up`