Правила compose-файлу

Що не можна використовувати в docker-compose.yml на Jambotron: привілейований режим, простори імен хоста, шляхи поза проєктом тощо.

Усі проєкти працюють на спільному сервері, тому частину можливостей Docker заблоковано. Деплой зупиниться зі списком порушень, якщо compose-файл використовує:

  • у сервісах: privileged, cap_add, devices, device_cgroup_rules, gpus, security_opt, sysctls, runtime, cgroup_parent, volumes_from, external_links, oom_kill_disable, provider, use_api_socket, резервування GPU (deploy.resources.reservations.devices), привілейовані хуки post_start / pre_stop;
  • простори імен хоста: network_mode, pid, ipc, uts, userns_mode, cgroup зі значенням host або container:…;
  • шляхи поза проєктом: bind mounts, env_file, build.context, build.dockerfile, файли secrets / configs — усе має бути всередині папки проєкту (тобто без /var/run/docker.sock і без ../);
  • у build: privileged, entitlements, ssh, secrets, network: host; віддалені контексти збирання (URL, git@…);
  • томи: лише драйвер local, без driver_opts, без external томів;
  • мережі: лише драйвер bridge, без driver_opts, без external мереж; без external secrets і configs.

Іменовані томи та образи з Docker Hub чи інших реєстрів працюють як завжди.