> ## Documentation Index
> Fetch the complete documentation index at: https://runpod-b18f5ded-new-sls-quickstart.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# build

Build a deployment-ready artifact for your Flash application without deploying. Use this for more control over the build process or to inspect the artifact before deploying.

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
flash build [OPTIONS]
```

## Examples

Build with all dependencies:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
flash build
```

Build with additional excluded packages:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
flash build --exclude scipy,pandas
```

Build with custom output name:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
flash build -o my-app.tar.gz
```

## Flags

<ResponseField name="--no-deps">
  Skip transitive dependencies during pip install. Only installs direct dependencies specified in `@Endpoint` decorators. Useful when the base image already includes dependencies.
</ResponseField>

<ResponseField name="--output, -o" type="string" default="artifact.tar.gz">
  Custom name for the output archive file.
</ResponseField>

<ResponseField name="--exclude" type="string">
  Comma-separated list of packages to exclude from the build (e.g., `torch,torchvision`). Use this to skip packages already in the base image.
</ResponseField>

## What happens during build

1. **Python version validation**: Verifies your local Python version is supported (3.10, 3.11, or 3.12).
2. **Function discovery**: Finds all `@Endpoint` decorated functions.
3. **Grouping**: Groups functions by their endpoint configuration.
4. **Manifest generation**: Creates `.flash/flash_manifest.json` with endpoint definitions.
5. **Dependency installation**: Installs Python packages for Linux x86\_64.
6. **Packaging**: Bundles everything into `.flash/artifact.tar.gz`.

## Build artifacts

After running `flash build`:

| File/Directory               | Description                           |
| ---------------------------- | ------------------------------------- |
| `.flash/artifact.tar.gz`     | Deployment package ready for Runpod   |
| `.flash/flash_manifest.json` | Service discovery configuration       |
| `.flash/.build/`             | Build directory (kept for inspection) |

## Cross-platform builds

Flash automatically handles cross-platform builds:

* **Automatic platform targeting**: Dependencies are installed for Linux x86\_64, regardless of your build platform.
* **Binary wheel enforcement**: Only pre-built wheels are used, preventing compilation issues.

### Python version in deployed workers

Your local Python version does not affect what runs in the cloud. `flash build` downloads wheels for the container's Python version automatically.

| Worker type | Python version      | Notes                                                                                                                                           |
| ----------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| GPU         | 3.12 only           | The GPU base image includes multiple interpreters (3.9–3.14) for interactive pod use, but torch and CUDA libraries are installed only for 3.12. |
| CPU         | 3.10, 3.11, or 3.12 | Configurable via the `PYTHON_VERSION` build arg.                                                                                                |

Image tags follow the pattern `py{version}-{tag}` (for example, `runpod/flash:py3.12-latest`).

## Managing deployment size

Runpod Serverless has a **1.5GB deployment limit**. Flash automatically excludes packages that are pre-installed in the base image:

* `torch`, `torchvision`, `torchaudio`, `triton`

These packages are excluded at archive time, so you don't need to specify them manually.

### Manual exclusions

Use `--exclude` to skip additional packages that are already in a custom base image or not needed:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
flash build --exclude scipy,pandas
```

### Base image reference

| Resource type | Base image   | Auto-excluded packages                         |
| ------------- | ------------ | ---------------------------------------------- |
| GPU           | PyTorch base | `torch`, `torchvision`, `torchaudio`, `triton` |
| CPU           | Python slim  | `torch`, `torchvision`, `torchaudio`, `triton` |

<Tip>
  Check the [worker-flash repository](https://github.com/runpod-workers/worker-flash) for current base images and pre-installed packages.
</Tip>

## Troubleshooting

### Build fails with "functions not found"

Ensure your project has `@Endpoint` decorated functions:

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
from runpod_flash import Endpoint, GpuGroup

@Endpoint(name="my-worker", gpu=GpuGroup.ANY)
def my_function(data):
    return {"result": data}
```

### Archive is too large

Some CUDA packages (`torch`, `torchvision`, `torchaudio`, `triton`) are auto-excluded. If the archive is still too large, use `--exclude` to skip additional packages or `--no-deps` to skip transitive dependencies:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
flash build --exclude scipy,pandas
```

### Dependency installation fails

If a package doesn't have Linux x86\_64 wheels:

1. Ensure standard pip is installed: `python -m ensurepip --upgrade`
2. Check PyPI for Linux wheel availability.

### Need to examine generated files

The build directory is kept after building. Inspect it with:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
ls .flash/.build/
```

## Related commands

* [`flash deploy`](/flash/cli/deploy) - Build and deploy in one step (includes `--preview` option for local testing)
* [`flash run`](/flash/cli/run) - Start development server
* [`flash env`](/flash/cli/env) - Manage environments

<Note>
  Most users should use `flash deploy` instead, which runs build and deploy in one step. Use `flash build` when you need more control or want to inspect the artifact.
</Note>
