Запускаем PDM в виде docker образа

Зачем это?

  1. Не люблю контейнеры с debian, у меня все на alpine
  2. PDM, развернутый через helper scripts у меня сломался
  3. В целом, такой подход более управляемый

Оригинальная статья

Мой 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

Текущие проблемы:

  1. Пока что не полноценный stateless контейнер, как минимум пароль рута не сохраняется
  2. Что-то много откючено по безопасности мне думается, что можно сократить часть параметров
  3. Не факт, что заведется с первого раза, сырой проект очень
  4. Не факт, что будет обновляться оперативно, но может быть можно обновлять из самого контейнера, текущая версия PDM в docker 1.0.1
  5. Встроенная документация не работает
    image

Собственно, для первого входа надо задать пароль рута

docker exec -it pdm passwd

Далее открываем в браузере по порту 8443

Если видим кучу ошибок, то надо создать структуру каталогов в ./proxmox-datacenter-manager`

я сделал так

  1. поменял точку монтирования - ./proxmox-datacenter-manager:/etc/proxmox-datacenter-manager_new
  2. Зашел в docker контейнер docker compose exec bash
  3. Скопировал файлы в точку монтирования cp -ar /etc/proxmox-datacenter-manager/* /etc/proxmox-datacenter-manager_new/
  4. Поменял точку монтирования как в конфиге и перезапустил

Для чего это надо? Чтобы при каждом деплое не терялись настройки

Что я сделал со сбросом пароля рута? Я добавил аутентификацию через openid-connect и через нее и работаю

Что еще можно сделать на будущее:

  1. Я бы разобрался с привилегиями и поубирал лишее из конфига, но пока только запустил и на том хорошо
  2. Может быть добавить еще точки монтирования т.к. внутри практически полноценный debian с ssh сервером и init, может быть /etc/shadow или что-то еще стоит добавить для сохранения состояния между обновлениями

Обновление

docker compose exec pdm sh -c 'apt update; apt upgrade -y'
1 лайк