Run Tiled using DockerΒΆ

To run tiled using docker we must first obtain a docker image containing a tiled installation. To do this run

docker pull

In this example we will use the docker image to serve a directory of files as explained here.

First generate a directory of example files using a utility provided by Tiled.

python -m tiled.examples.generate_files example_files/

The docker container runs tiled via gunicorn which provides horizontal scaling over workers. Because of this we cannot configure tiled using commandline arguments and must specify a config file.

Take the following server configuration below:

# config.yml
  - path: /
    tree: tiled.adapters.files:DirectoryAdapter.from_directory
      directory: "example_files"
  allow_anonymous_access: true
  single_user_api_key: SECRET

and serve it using the docker container

docker run --rm -p 8000:8000 \
  --mount type=bind,source="$(pwd)",target=/deploy \
  --env TILED_CONFIG=/deploy/config.yml

Note that we make the data and the configuration file available to the container via bind mounds and point tiled to the configuration file using the TILED_CONFIG environment variable. We must supply the single_user_api_key in the configuration so that all workers use the same key.

This invocation can be simplified by writing a docker-compose.yml file.

# docker-compose.yml

version: "3.2" # higher config versions may also work; lower will not
      - type: bind
        source: .
        target: /deploy
      - TILED_CONFIG=/deploy/config.yml
      - 8000:8000

With this file the tiled server can be brought up by simply running docker-compose up.

To change the gunicorn configuration, to for example change the number of workers or the port, set the environment variable GUNICORN_CONF to point to a configuration file accessible in the container.