Зачем это?
- Не люблю контейнеры с debian, у меня все на alpine
- PDM, развернутый через helper scripts у меня сломался
- В целом, такой подход более управляемый
Оригинальная статья
Мой docker-compose
services:
pdm:
image: ghcr.io/longqt-sea/proxmox-datacenter-manager
container_name: pdm
hostname: pdm
restart: unless-stopped
network_mode: host
cgroup: host
security_opt:
- seccomp=unconfined
- apparmor=unconfined
cap_add:
- ALL
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup
- ./proxmox-datacenter-manager:/etc/proxmox-datacenter-manager
Текущие проблемы:
- Пока что не полноценный stateless контейнер, как минимум пароль рута не сохраняется
- Что-то много откючено по безопасности мне думается, что можно сократить часть параметров
- Не факт, что заведется с первого раза, сырой проект очень
- Не факт, что будет обновляться оперативно, но может быть можно обновлять из самого контейнера, текущая версия PDM в docker 1.0.1
- Встроенная документация не работает

Собственно, для первого входа надо задать пароль рута
docker exec -it pdm passwd
Далее открываем в браузере по порту 8443
Если видим кучу ошибок, то надо создать структуру каталогов в ./proxmox-datacenter-manager`
я сделал так
- поменял точку монтирования
- ./proxmox-datacenter-manager:/etc/proxmox-datacenter-manager_new - Зашел в docker контейнер
docker compose exec bash - Скопировал файлы в точку монтирования
cp -ar /etc/proxmox-datacenter-manager/* /etc/proxmox-datacenter-manager_new/ - Поменял точку монтирования как в конфиге и перезапустил
Для чего это надо? Чтобы при каждом деплое не терялись настройки
Что я сделал со сбросом пароля рута? Я добавил аутентификацию через openid-connect и через нее и работаю
Что еще можно сделать на будущее:
- Я бы разобрался с привилегиями и поубирал лишее из конфига, но пока только запустил и на том хорошо
- Может быть добавить еще точки монтирования т.к. внутри практически полноценный debian с ssh сервером и init, может быть
/etc/shadowили что-то еще стоит добавить для сохранения состояния между обновлениями
Обновление
docker compose exec pdm sh -c 'apt update; apt upgrade -y'