Quadlet и systemd
Quadlet и systemd
Quadlet — systemd-генератор Podman. Файлы с расширениями ниже преобразуются в .service-юниты и управляются через systemctl.
Типы файлов
Секции [Unit], [Service] и [Install] — стандартные для systemd. Параметры Podman задаются в [Container], [Pod], [Volume] и т. д.
Каталоги
rootful: /run/containers/systemd/, /etc/containers/systemd/, /usr/share/containers/systemd/
rootless: $XDG_RUNTIME_DIR/containers/systemd/, ~/.config/containers/systemd/, /etc/containers/systemd/users/, /etc/containers/systemd/users/$(UID)/
Примеры
Контейнер
/etc/containers/systemd/nginx.container:
[Unit]
Description=Nginx
[Container]
Image=docker.io/library/nginx
PublishPort=8080:80
[Service]
Restart=always
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start nginx.service
Под и контейнер в поде
/etc/containers/systemd/app.pod:
[Pod]
PodName=app
PublishPort=3000:3000
/etc/containers/systemd/app.container:
[Container]
Image=docker.io/gitea/gitea:latest
Pod=app.pod
Environment=GITEA__database__DB_TYPE=postgres
Environment=GITEA__database__HOST=localhost:5432
Environment=GITEA__database__NAME=gitea
Environment=GITEA__database__USER=gitea
Environment=GITEA__database__PASSWD=gitea
Том и контейнер
/etc/containers/systemd/data.volume:
[Volume]
/etc/containers/systemd/backend.container:
[Container]
Image=docker.io/library/postgres:15
Volume=data.volume:/var/lib/postgresql/data
Environment=POSTGRES_RANDOM_ROOT_PASSWORD=yes
Environment=POSTGRES_USER=gitea
Environment=POSTGRES_PASSWORD=gitea
Environment=POSTGRES_DATABASE=gitea
Kubernetes YAML
/etc/containers/systemd/deploy.kube:
[Unit]
Description=Приложение из Kubernetes YAML
[Kube]
Yaml=/opt/app/deployment.yml
[Install]
WantedBy=multi-user.target