Builds
Manage Sekuire cloud builds for your agents. When you publish to the public registry, Sekuire builds your Docker image using Kaniko in Kubernetes.
Build commands apply to public registry submissions. For private registries, you build and push your own images.
Commands
- sekuire builds create - Trigger a new build
- sekuire builds status - Check build progress
- sekuire builds list - List builds for an agent
create
Trigger a new build for an agent. Requires a connected GitHub repository.
sekuire builds create [OPTIONS]
Options
| Option | Description |
|---|---|
--agent <ID> | Agent ID (defaults to current project) |
--tag <TAG> | Build tag (default: latest) |
-r, --registry <URL> | Registry URL |
Example
$ sekuire builds create --tag v1.0.0
Triggering Build
----------------
Agent: 72ad085f
Tag: v1.0.0
Build triggered successfully!
Build ID: 0fa20384-a027-46d3-8082-fd325f833fba
Track progress:
sekuire builds status 0fa20384-a027-46d3-8082-fd325f833fba
Prerequisites: Agent must be published to the registry and have a GitHub repository connected via sekuire github connect.
status
Check the status of a specific build.
sekuire builds status <BUILD_ID> [OPTIONS]
Options
| Option | Description |
|---|---|
--agent <ID> | Agent ID (defaults to current project) |
-r, --registry <URL> | Registry URL |
Build Statuses
| Status | Description |
|---|---|
pending | Build queued, waiting for resources |
cloning | Cloning repository from GitHub |
analyzing | Running SDK compliance checks |
building | Building Docker image with Kaniko |
scanning_image | Running Trivy vulnerability scan |
completed | Build finished successfully |
failed | Build failed (check logs) |
blocked | Blocked due to compliance failure |
Example: Build Completed
$ sekuire builds status 0fa20384-a027-46d3-8082-fd325f833fba
Build Status
------------
Agent: 72ad085f
Build: 0fa20384
Status: Completed successfully
Tag: v1.0.0
Repository: github.com/acme/my-agent
Commit: a1b2c3d4
--- Timeline ---
Created: 2026-01-26 20:16
Started: 2026-01-26 20:17
Completed: 2026-01-26 20:28
--- Checks ---
SDK Compliance: Passed
Security Scan: Passed
--- Image ---
Digest: sha256:b24bc826
Size: 245.3 MB
Example: Build Failed
$ sekuire builds status build_abc123
Build Status
------------
Agent: 72ad085f
Build: build_abc
Status: Failed
--- Blocked ---
Reason: SDK not detected. Public registry requires Sekuire SDK integration.
list
List all builds for an agent.
sekuire builds list [OPTIONS]
Options
| Option | Description |
|---|---|
--agent <ID> | Agent ID (defaults to current project) |
--status <STATUS> | Filter by status |
--format <FORMAT> | Output format: table (default) or json |
-r, --registry <URL> | Registry URL |
Example
$ sekuire builds list
Builds for 72ad085f
------------------------------------------------------------
BUILD ID STATUS TAG CREATED
------------------------------------------------------------
0fa20384 Done v1.0.0 2026-01-26 20:16
b53c35b2 Failed v0.9.0 2026-01-26 20:04
12afb861 Failed v0.8.0 2026-01-26 19:43
# Filter by status
$ sekuire builds list --status completed
# JSON output
$ sekuire builds list --format json
Build Pipeline
When you trigger a build, Sekuire runs the following pipeline:
1. Clone Repository
└── Git clone from GitHub using App installation token
2. SDK Compliance Check
└── Verify Sekuire SDK integration and manifest
3. Docker Build (Kaniko)
└── Build image in Kubernetes without Docker daemon
4. Security Scan (Trivy)
└── Scan for vulnerabilities in image layers
5. Push to Registry
└── Push to registry.sekuire.ai/<sekuire_id>:<tag>
Kaniko Infrastructure
Builds run as Kubernetes Jobs using Kaniko:
- No Docker daemon required (rootless)
- Isolated build environment per job
- Automatic cleanup after completion
- Resource limits: 4GB memory, 2 CPU cores
- Timeout: 30 minutes
Kaniko builds Docker images inside a container without requiring privileged access, making it secure for multi-tenant Kubernetes clusters.
Dockerfile Requirements
Your Dockerfile must expose a health endpoint and include Sekuire manifest files.
FROM node:22-alpine AS builder
WORKDIR /app
RUN corepack enable && corepack prepare pnpm@latest --activate
COPY package.json pnpm-lock.yaml* ./
RUN pnpm install --frozen-lockfile
COPY . .
RUN pnpm build
FROM node:22-alpine AS runtime
WORKDIR /app
RUN apk add --no-cache curl
RUN addgroup -g 1001 sekuire && adduser -S sekuire -u 1001
COPY --from=builder --chown=sekuire:sekuire /app/node_modules ./node_modules
COPY --from=builder --chown=sekuire:sekuire /app/dist ./dist
COPY --chown=sekuire:sekuire prompts ./prompts
COPY --chown=sekuire:sekuire sekuire.yml tools.json ./
USER sekuire
ENV NODE_ENV=production
ENV PORT=8002
EXPOSE 8002
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD curl -f http://localhost:8002/health || exit 1
CMD ["node", "dist/index.js"]
Key Requirements
- Health endpoint at
/health - Run as non-root user (recommended)
- Include
sekuire.ymlandtools.json - Use multi-stage builds to minimize image size
Troubleshooting
Build fails with "No Dockerfile found"
Ensure your repository has a Dockerfile in the root directory.
Build fails during npm/pnpm install
Check that your package.json has valid dependencies. For TypeScript projects, ensure build scripts complete without errors.
Build times out
Builds have a 30-minute timeout. Optimize your Dockerfile:
- Use multi-stage builds
- Leverage layer caching
- Minimize COPY operations
Security scan finds vulnerabilities
Review the scan results and update vulnerable dependencies. Critical vulnerabilities may block the build for public registry.
Resubmitting After Failure
If your build fails, fix the issues and create a new build:
# 1. Check why it failed
$ sekuire builds status <build-id>
# 2. Fix the issues in your code
# (add SDK, update dependencies, fix security issues)
# 3. Commit and push to GitHub
$ git add . && git commit -m "Fix build issues"
$ git push
# 4. Trigger a new build
$ sekuire builds create --tag v1.0.1
# 5. Track new build
$ sekuire builds status <new-build-id>