Files
homelab/podman.md
2024-05-22 08:48:51 -04:00

2.5 KiB

Podman

Notes

  • podman auth is stored in /run/user/1000/containers

Podman systemd files

Rather than copying compose files or running podman run as systemd services you can generate quadlet files to define containers that run at boot.

Podlet generates quadlets - systemd files specifically for containers.

You generate quadlets from compose files like so:

podman run \
    -v ./compose:/compose \
    -v ./quadlets:/quadlets \
    quay.io/k9withabone/podlet \
    -f /quadlets \
    -i \
    --overwrite \
    compose /compose/grafana-compose.yaml

Copy these files to /usr/share/containers/systemd/

iperf3

podman run \
    -v ./compose:/compose \
    -v ./quadlets:/quadlets \
    quay.io/k9withabone/podlet \
    -f /quadlets \
    -i \
    --overwrite \
    compose /compose/iperf3-compose.yaml

pihole

podman run \
    -v ./compose:/compose \
    -v ./quadlets:/quadlets \
    quay.io/k9withabone/podlet \
    -f /quadlets \
    -i \
    --overwrite \
    --wants network-online.target \
    --after network-online.target \
    compose /compose/pihole-compose.yaml

Grafana

podman run \
    -v ./compose:/compose \
    -v ./quadlets:/quadlets \
    quay.io/k9withabone/podlet \
    -f /quadlets \
    -i \
    --overwrite \
    compose /compose/grafana-compose.yaml

Nginx

nginx proxies all other services.

Nginx Build

podman build -f nginx-stream/Containerfile -t docker.io/ducoterra/nginx-stream:latest
podman build -f dns/Containerfile -t docker.io/ducoterra/nginx-stream-dns:latest

podman push docker.io/ducoterra/nginx-stream:latest
podman push docker.io/ducoterra/nginx-stream-dns:latest

podman-compose -f compose/nginx-compose.yaml up -d

Nginx Run

podman-compose -f compose/nginx-compose.yaml up

Quadlet Generation

podman run \
    -v ./compose:/compose \
    -v ./quadlets:/quadlets \
    quay.io/k9withabone/podlet \
    -f /quadlets \
    -i \
    --overwrite \
    compose /compose/nginx-stream-compose.yaml

Update yellow/orange

ansible-playbook -i ansible/inventory.yaml ansible/update-quadlets.yaml