Skip to content

Feature/service runtime fields - #288

Merged
vsilent merged 2 commits into
devfrom
feature/service-runtime-fields
Oct 15, 2026
Merged

vsilent merged 2 commits into
devfrom
feature/service-runtime-fields

Conversation

@vsilent

@vsilent vsilent commented Oct 15, 2026

Copy link
Copy Markdown
Collaborator

This pull request introduces support for advanced Docker Compose runtime features in service definitions, including new fields such as restart, cap_add, cap_drop, devices, profiles, aliases, and deploy options. These changes are reflected in both the database schema (with a new runtime JSONB column in the project_app table) and in the code that generates Compose files. Additionally, the documentation has been updated to describe these new options and provide usage examples.

Key changes:

Database and Query Updates:

Compose Service Generation:

  • Updated service_to_compose_value in compose_service_sync.rs to emit new runtime fields (restart, entrypoint, profiles, aliases, deploy, etc.) in generated Compose YAML, with correct handling for networks and aliases.
  • Adjusted tests to provide default values for the new runtime field in service definitions. [1] [2]

Documentation:

  • Expanded the STACKER_YML_REFERENCE.md to document new service fields and provide examples for one-shot jobs, profiles, GPU device reservations, and shared aliases. [1] [2]

Additional Query Updates:

  • Added a new members_server_access boolean field to several .sqlx query descriptors for organization membership, and updated their nullability arrays. [1] [2] [3] [4] [5] [6]

These changes enable more flexible and powerful Compose configurations for services, supporting modern deployment scenarios such as GPU workloads and multi-profile stacks.

robotizeit and others added 2 commits October 15, 2026 18:52
The column came with migration 20261014120000 and is read and written by
its own queries, but the three SELECT * project queries were prepared
before it existed. Preparing them against a migrated database fails to
compile (no field members_server_access), so no sqlx query cache could
be regenerated. The field is kept out of API bodies.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012TKZy6f5shPzM9WLdswH6f
A service can now say how it runs: restart ("no" for a job that runs
once), entrypoint, compose profiles, network aliases, deploy.replicas
and deploy.resources.reservations.devices (GPUs). Together they let one
stack carry CPU and GPU variants of a service under one name.

Every declared setting reaches each compose stacker writes from the
service, per shared-fixtures stack-service-runtime-fields: the CLI
compose, the author's own compose (deploy.compose_file), the compose the
server renders from the registered project, and the one the
status-panel agent applies. Tracing those paths also found settings
that were silently dropped:

- registering a project sent no depends_on, cap_add, cap_drop or
  devices, and the server form had no healthcheck, so a deploy started
  outside the CLI lost them;
- project_app rows never got depends_on or healthcheck, and had no
  place for capabilities or devices (new runtime JSONB column);
- the agent's compose never rendered command or entrypoint: the
  template asked for them but the render context did not carry them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012TKZy6f5shPzM9WLdswH6f
@vsilent
vsilent merged commit faebf74 into dev Oct 15, 2026
9 of 10 checks passed
@vsilent vsilent mentioned this pull request Oct 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants