> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackshift.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Deploy a Docker image

> Run a raw container image through the project flow when you already have an image and need runtime configuration, resource sizing, storage, domains, and placement.

<Tip>
  **Live.** This area is documented as current, user-reliable behavior.
</Tip>

## Goal

Deploy an image-backed application with the least ceremony.

## Prerequisites

* A healthy node
* A Docker image URI
* The runtime port and env vars the image expects

## Workflow

<Steps>
  <Step>
    Create a project and choose Docker image as the source type.
  </Step>

  <Step>
    Provide the image URI, service type, workload type, and runtime settings.
  </Step>

  <Step>
    Pick a resource preset, startup timeout, and optional persistent volume before deploy.
  </Step>

  <Step>
    Configure domains, env vars, and placement preferences.
  </Step>

  <Step>
    Deploy and validate the live URL, logs, and health state.
  </Step>
</Steps>

## Runtime choices that matter

* Service type controls whether StackShift exposes public ingress. Web services get URL and domain behavior. Worker services do not.
* Workload type classifies the repo or image shape as web, API, worker, or contract build.
* Contract build is build-only. It produces artifacts but does not deploy a long-running runtime.

## Resource presets and warmup

* Standard: 512MB RAM and 0.5 CPU.
* Web3 App: 2GB RAM and 1 CPU.
* Worker: 4GB RAM and 2 CPU.
* Heavy: 8GB RAM and 4 CPU.
* Startup timeout is configurable from 30 to 600 seconds. Increase it for indexers, chain warmup, or slower boot paths.

## Persistent volume behavior

* Persistent volume can be disabled with size 0 or enabled from 1 to 100 GB.
* Mount paths must start with `/` and cannot target `/`, `/proc`, `/sys`, `/etc`, `/var/lib/docker`, or `/var/lib/stackshift`.
* Use persistent storage for chain caches, checkpoints, or data that should survive redeploys.

## Expected result

<Check>
  The project is live from a Docker image and manageable through the project pages.
</Check>

## Common failures

<Warning>
  * The app does not listen on the configured port
  * Image startup requires env vars that were not set
  * Worker or build-only runtime was selected but a public URL was expected
</Warning>

## Related guides

<CardGroup cols={2}>
  <Card title="Builds, deployments, and logs" href="/projects/builds-deployments-and-logs">
    Understand the project execution lifecycle: build output, deploy state, rollback behavior, and where to inspect logs.
  </Card>

  <Card title="Project environment, domains, and previews" href="/projects/environment-domains-and-previews">
    Configure the project surfaces that most often decide whether a deployment works after it builds, including runtime shape, domains, previews, and storage.
  </Card>
</CardGroup>
