# Build image - Workflow node | Docs - nodulz

Source: https://nodulz.com/docs/nodes/ci_docker_build

Language: en

Build and push an image with Docker or Podman from the workspace

## Usage and specifics

Dockerfile and context are relative to the selected workspace. tags must identify the desired image. push needs prior registry authentication and matching permissions.

Technical type : `ci_docker_build`. Runtime : `docker`.

## Credentials and prerequisites

This node defines no dedicated external credential. Remote sources or execution targets may still need their own access credentials.

See the [credentials guide](/docs/credentials) if a remote source or execution target requires access.

## Parameters

Names below are technical keys. Defaults are not a ready-to-run configuration: complete fields required by your operation. Paths containing [] describe list items; some fields depend on the selected mode.

| Parameter | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `secretFiles` | `array` | `[]` | -; max 20 |
| `secretFiles[].path` | `string` | - | -; min 1, max 1024 |
| `secretFiles[].content` | `string` | - | -; max 1048576 |
| `dockerfile` | `string` | `"Dockerfile"` | -; min 1 |
| `context` | `string` | `"."` | - |
| `tags` | `array` | `["ghcr.io/org/app:latest"]` | -; min 1 |
| `buildArgs` | `record` | - | - |
| `push` | `boolean` | `true` | - |
| `platforms` | `array` | - | - |
| `workspaceSource` | `union` | `{"kind":"upstream"}` | - |
| `workspaceSource.kind` | `literal` | `"upstream"` | `upstream`, `node` |
| `workspaceSource.key` | `string` | - | -; min 1 |
| `executionTarget` | `union` | `{"kind":"host"}` | - |
| `executionTarget.kind` | `literal` | `"host"` | `host`, `remote_server`, `kube`, `swarm` |
| `executionTarget.serverId` | `string` | - | -; min 1 |
| `executionTarget.provider` | `enum` | - | `aws`, `gcp`, `scaleway`, `ovh`, `azure`, `digitalocean`, `hetzner` |
| `executionTarget.clusterId` | `string` | - | -; min 1 |
| `executionTarget.namespace` | `string` | - | - |

## Configuration help

| Setting | Purpose and guidance |
| --- | --- |
| `dockerfile`<br>Dockerfile | Dockerfile path relative to the Checkout workspace root. |
| `context`<br>Build context | Directory used as Docker or Podman build context (usually .). |
| `tags`<br>Tags (one per line) | Built image tags - one per line (expressions allowed). |
| `push`<br>Push image after build | Publish every tag after the build with Docker or Podman (requires registry login). |

## Initial configuration

Initial catalog configuration example, to adapt before running. Keep secrets in credentials.

```json
{
  "dockerfile": "Dockerfile",
  "context": ".",
  "tags": [
    "ghcr.io/org/app:latest"
  ],
  "push": true,
  "workspaceSource": {
    "kind": "upstream"
  },
  "executionTarget": {
    "kind": "host"
  }
}
```

## Verification

Test with representative data. Check node output in the inspector and logs, then use editor mapping for downstream fields. A trigger test with a simulated payload does not validate external service delivery.

See also : [Expressions and data](/docs/expressions), [Executions](/docs/executions), [Node catalog](/docs/nodes).

## Explore further

- [Features - nodulz](https://nodulz.com/product/overview)
- [Node catalog - nodulz](https://nodulz.com/product/catalog)
- [MCP server - nodulz](https://nodulz.com/product/mcp)
- [Pricing - nodulz](https://nodulz.com/pricing)
- [Use cases and workflow automation - nodulz](https://nodulz.com/use-cases)
- [Choose what your workflows can do. - nodulz](https://nodulz.com/compare)
- [Documentation - nodulz](https://nodulz.com/docs)
