Skip to content

Publishing skill shows unhelpful 'exit status 1' on docker failures #193

@timflannagan

Description

@timflannagan

When arctl skill publish fails during docker build or push, we only show exit status 1 which is not helpful for debugging.

Reproduce

$ ./bin/arctl skill publish .playground/repo-compliance --docker-url localhost:5002/skills --tag v0.1.0 --push
Publishing skill from: /work/agentregistry/.playground/repo-compliance
Found 1 skill(s) to publish
Processing skill: /work/agentregistry/.playground/repo-compliance
Building Docker image (Dockerfile via stdin): docker build -t localhost:5002/skills/repo-compliance:v0.1.0:v0.1.0 -f - /work/agentregistry/.playground/repo-compliance
[+] Building 0.0s (0/0)                                                                                                                         docker:default
ERROR: invalid tag "localhost:5002/skills/repo-compliance:v0.1.0:v0.1.0": invalid reference format
Error: one or more errors occurred during publishing: failed to build skill '/work/agentregistry/.playground/repo-compliance': docker build failed: exit status 1
Usage:
  arctl skill publish <skill-folder-path> [flags]

Flags:
      --docker-url string   Docker registry URL. For example: docker.io/myorg. The final image name will be <docker-url>/<skill-name>:<tag>
      --dry-run             Show what would be done without actually doing it
  -h, --help                help for publish
      --platform string     Target platform(s) for the build (e.g., linux/amd64, linux/arm64, or linux/amd64,linux/arm64)
      --push                Automatically push to Docker and agent registries
      --tag string          Docker image tag to use (default "latest")

Global Flags:
      --registry-token string   Registry bearer token (overrides ARCTL_API_TOKEN)
      --registry-url string     Registry base URL (overrides ARCTL_API_BASE_URL; default http://localhost:12121)
  -v, --verbose                 Enable verbose output

Current behavior

Error: failed to build skill '...': docker build failed: exit status 1

Expected

Error: failed to build skill '...': docker build failed:
ERROR: invalid tag "...": invalid reference format

We should capture stderr from docker and include it in the error message instead of just the Go exec error.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions