Official bknd Docker image

The docker image intentially doesn’t copy any data into the image for now, so you can copy the Dockerfile and build the image anywhere.

Locate the Dockerfile either by pulling the repository and navigating to the docker directory, or download from here.

Building the Docker image

To build the Docker image, run the following command:

docker build -t bknd .

If you want to override the bknd version used, you can pass a VERSION build argument:

docker build --build-arg VERSION=<version> -t bknd .

Running the Docker container

To run the Docker container, run the following command:

docker run -p 1337:1337 bknd

You can pass the same CLI arguments (see Using the CLI guide) to the docker container as you’d do with npx bknd run, like so:

docker run -p 1337:1337 -e ARGS="--db-url file:/data/data.db" bknd

To mount the data directory to the host, you can use the -v flag:

docker run -p 1337:1337 -v /path/to/data:/data bknd

Docker compose example

If you want to use docker compose and build the image directly from the git repository.

compose.yml
services:
  bknd:
    pull_policy: build
    build: https://github.com/bknd-io/bknd.git#main:docker
    ports:
      - 1337:1337
    environment:
      ARGS: "--db-url file:/data/data.db"
    volumes:
      - ${DATA_DIR:-.}/data:/data

The docker compose file can be extended to build a specific version of bknd. Extend the build section with args and labels. Inside args, you can pass a VERSION build argument, and use labels so the built image receives a unique identifier.

compose.yml
services:
  bknd:
    pull_policy: build
    build:
      context: https://github.com/bknd-io/bknd.git#main:docker
      args:
        VERSION: <version>
      labels:
        - x-bknd-version=<version>
    ports:
      - 1337:1337
    environment:
      ARGS: "--db-url file:/data/data.db"
    volumes:
      - ${DATA_DIR:-.}/data:/data