> Documentation index: [Saleor](/llms.txt) · [This section](/setup/llms.txt)
> Source: https://docs.saleor.io/setup/docker-images

# Docker Images

If you choose to self-host, Docker is Saleor's preferred method of deployment.

<a id="saleor-core"></a>

## Saleor Core

Saleor publishes official Docker images for all Core releases. The images can be found on [GitHub Container Registry](https://github.com/saleor/saleor/pkgs/container/saleor).

<a id="using-the-official-image"></a>

### Using the official image

To pull the image from GitHub Container Registry, use the following command, substituting the desired version for `<version>`:

```shell
docker pull ghcr.io/saleor/saleor:<version>
```

To use it in your project, refer to the official image in your `docker-compose.yml` file:

```yaml
version: "3.4"

services:
  # ...
  api:
    image: ghcr.io/saleor/saleor:<version>
    # ...
  worker:
    image: ghcr.io/saleor/saleor:<version>
    command: celery --app saleor.celeryconf:app worker -E --loglevel=info
    # ...
  scheduler:
    image: ghcr.io/saleor/saleor:<version>
    command: celery --app saleor.celeryconf:app beat --scheduler saleor.schedulers.schedulers.DatabaseScheduler
    # ...
```

<a id="building-from-scratch"></a>

### Building from scratch

If you want to build the image yourself, use `docker build` in the `saleor` directory:

```shell
cd saleor
docker build -t <yourimagename> .
```

The image is suitable for production use. See the [Configuration](/setup/configuration.md) for a list of environment variables you can use to configure the container.

<a id="saleor-dashboard"></a>

## Saleor Dashboard

Saleor publishes official Docker images for all Dashboard releases. The images can be found on [GitHub Container Registry](https://github.com/saleor/saleor-dashboard/pkgs/container/saleor-dashboard).

Dashboard versioning follows the same pattern as the Core. Minor versions of the Dashboard are compatible with the same minor version of the Core. For example, Dashboard version 3.20 is compatible with Core version 3.20.

<a id="using-the-official-image-1"></a>

### Using the official image

To pull the image from GitHub Container Registry, use the following command, substituting the desired version for `<version>`:

```shell
docker pull ghcr.io/saleor/saleor-dashboard:<version>
```

To use it in your project, refer to the official image in your `docker-compose.yml` file:

```yaml
version: "3.4"

services:
  # ...
  dashboard:
    image: ghcr.io/saleor/saleor-dashboard:<version>
    # ...
```

Dashboard uses `http://localhost:8000` as the default API address. You can change it by setting the corresponding environment variable:

```yaml
version: "3.4"

services:
  # ...
  dashboard:
    image: ghcr.io/saleor/saleor-dashboard:<version>
    # ...
    environment:
      - API_URL=http://your-own-api-address.com/graphql/
```

<a id="building-from-scratch-1"></a>

### Building from scratch

If you want to build the image yourself, use `docker build` in the `saleor-dashboard` directory:

```shell
cd saleor-dashboard
docker build -t <yourimagename> .
```

The image is suitable for production use however the Dashboard is a static application and does not require a backend server.

We recommend using a dedicated static hosting platform like Amazon S3 and CloudFront, or Vercel, instead of Docker.
