Skip to content

Bug: Split Komodo deployment (core + periphery in Docker) fails to materialize compose.yamlΒ #1106

@talan-z

Description

@talan-z

Hi all,

In a new Komodo installation, I observe the following issue:

In a standard split Komodo deployment where komodo-core and komodo-periphery both run in Docker, Git-backed stacks fail during Pull.
Although the repository is cloned successfully into repo-cache and contains compose.yaml, the stack run directory is never populated, resulting in errors such as:

Failed to validate run directory on host after stack write (canonicalize error)
Missing compose file at compose.yaml

This occurs on fresh installations, with clean databases, correct permissions, and valid repositories.

Deployment Model

  • Split deployment (core + periphery)
  • Periphery running in Docker is supported and widely used
  • The issue occurs in this standard configuration

Environment

  • Komodo version: latest (tested Jan 2026)
  • Deployment mode: split
  • komodo-core in Docker
  • komodo-periphery in Docker

Databases ### tested:

  • βœ… PostgreSQL

  • βœ… MongoDB-compatible backend

  • OS: Linux (Debian-based)

  • Filesystem: local ext filesystem (not NFS)

  • Git provider: Gitea

  • Repository:

  • organization-owned repo

  • compose.yaml at repository root

  • git installed inside periphery container (git version 2.30.2)

  • The issue reproduces independently of database backend.

Steps to Reproduce

Deploy Komodo using the standard split architecture:

  • core container
  • periphery container
  • database container
  • Configure PERIPHERY_ROOT_DIRECTORY (e.g. /var/lib/komodo-data)

Add a Git-backed stack:

  • valid repository
  • valid branch
  • compose.yaml at repo root
  • Click Pull

Expected Behavior

Komodo should:

  • Clone/update repo
  • Create stack run directory:
  • $PERIPHERY_ROOT_DIRECTORY/stacks//
  • Copy/render compose.yaml into the run directory
  • Allow Deploy

Actual Behavior

  • Repo is cloned correctly: /repo-cache////latest/compose.yaml

Stack run directory is either:

  • not created at all, or
  • created but empty
  • compose.yaml is never written

Komodo errors with:

Failed to validate run directory on host after stack write (canonicalize error)
Missing compose file at compose.yaml

Diagnostics / What Was Ruled Out

  • Permissions (chmod 777) β†’ no effect
  • Ownership (chown) β†’ no effect
  • Manual directory creation β†’ no effect
  • Fresh PostgreSQL database β†’ no effect
  • MongoDB/FerretDB backend β†’ same behavior
  • Repo naming (hyphens) β†’ no effect
  • Organization vs user repo β†’ no effect
  • Different filesystem paths (/var/lib, /opt, etc.) β†’ no effect
  • Missing git β†’ ruled out (git installed)

Key Observation

  • Repo cache is correct and complete
  • Periphery resolves paths correctly
  • The compose render/copy step is never executed
  • The failure occurs before any filesystem write attempt
  • This suggests a logic error in the split-Docker execution path, not a configuration or environment issue.

Appreciate your help!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions