---
icon: material/docker
---

Deploy a Red Hat (ubi8) container with the 10x Engine [Compiler](https://doc.log10x.com/engine/flavors/#compiler) flavor.

## Image tags { #image-tags }

Every command on this page names an explicit version, `1.1.69`. Pin a version, or a `sha256:` digest, for anything that has to come back the same twice: a CI job, a Kubernetes manifest, a runbook someone reruns in six months. Substitute the version you actually want; [Old Releases](https://doc.log10x.com/install/oldreleases/) lists what is published.

`:latest` exists on most 10x images and means one thing: the newest build of that specific image, nothing more. The tag is mutable, so it moves on the next release, and two pulls a week apart can hand you different bits with no signal that anything changed. Use it for a throwaway local try. Anywhere else, pin.

Two images carry no `:latest` at all, `log10x/fluentd-10x` and `log10x/fluent-bit-10x`, and that is deliberate rather than an oversight. Both baked forwarder images are retired: Fluentd and Fluent Bit now run 10x as a `log10x/edge-10x` sidecar alongside the upstream forwarder, so a floating tag on the old repositories would only point at a build model the docs no longer describe. Versioned tags stay published for legacy rebuilds. See [Receiver → Deploy](https://doc.log10x.com/apps/receiver/deploy/) for the sidecar layout.

!!! warning "Prerequisite: a licence"

	`log10x/pipeline-10x` ships with a limited public licence that covers local features (file I/O) only. The `run` pipeline publishes per-pattern metrics, and metric output is a connected feature, so a run without a signed licence exits 1 on `metricOutput(LogMetricRegistryFactory) requires a license`.

	No licence is needed to evaluate: the engine runs on its built-in 30-day evaluation licence. For a production licence (see [licensing](../manage/license.md)), save it as `license.jwt` in the working directory and mount it into the container as every `pipeline-10x` command below does. `TENX_LICENSE_KEY` takes the JWT inline instead, for environments that inject it as a secret.

1. Download the image:

``` { .console .copy }
docker pull log10x/pipeline-10x:1.1.69
```

2. Run the following test, which will read an embedded [Sample Spark log](https://github.com/log-10x/config/blob/main/data/sample/input/sample.log), and emits [optimized](/apps/receiver/) events and [summaries](https://doc.log10x.com/run/aggregate/).

``` { .console .copy }
docker run \
   -v "$PWD/license.jwt:/lic/license.jwt:ro" \
   -e TENX_LICENSE_FILE=/lic/license.jwt \
   log10x/pipeline-10x:1.1.69
```

3. To configure, pass [CLI arguments](https://doc.log10x.com/config/cli/) or mount [config files](https://doc.log10x.com/config/yaml/) and pass them to the 10x Engine:

``` { .console .copy }
docker run \
   -v "$PWD/license.jwt:/lic/license.jwt:ro" \
   -e TENX_LICENSE_FILE=/lic/license.jwt \
   -v /path/to/local/my-config.yaml:/etc/log-10x/my-config.yaml \
   log10x/pipeline-10x:1.1.69 \
   run @/etc/log-10x/my-config.yaml
```

## Compiler image

To generate [symbol libraries](https://doc.log10x.com/compile/link/#symbol-library), use the **`log10x/compiler-10x`** image, the [Compiler](https://doc.log10x.com/engine/flavors/#compiler) bundled with the source-fetch toolchain (`git`, `docker` CLI, `helm`) the [pull stage](https://doc.log10x.com/compile/pull/) shells out to. The lean `pipeline-10x` image above omits those tools.

``` { .console .copy }
docker pull log10x/compiler-10x:1.1.69
```

``` { .console .copy }
docker run log10x/compiler-10x:1.1.69 @apps/compiler
```

See [Compile → Deploy](https://doc.log10x.com/compile/deploy/) for full Kubernetes and CI/CD examples.

!!! note ""

	:simple-kubernetes: To run 10x containers in k8s, follow the deployment procedure for your specific app (Reporter, Receiver, or Retriever) under [apps](https://doc.log10x.com/apps/)
