Typemill   ›   Getting Started   ›   Installation   ›   Docker

Run Typemill with Docker

The Typemill repository contains a Dockerfile that helps you create your own Docker image locally. The Dockerfile is a community contribution by Matthieu Borgognon. There are several Docker images available on Dockerhub, and we will soon publish an official image.

Note: The Docker image in the Typemill repository does not provide TLS support. It's perfect either for local use or behind your own proxy.

Local Setup

Clone the Typemill repository:

git clone git://github.com/trendschau/typemill.git
cd typemill

Build your image locally:

docker build -t typemill:local .

Run the Docker image without persistence on port 8080:

docker run -d --name typemill -p 8080:80 typemill:local

Run Typemill with persistence:

docker run -d \
    --name=typemill \
    -p 8080:80 \
    -v $(pwd)/typemill_data/settings/:/var/www/html/settings/ \
    -v $(pwd)/typemill_data/media/:/var/www/html/media/ \
    -v $(pwd)/typemill_data/data/:/var/www/html/data/ \
    -v $(pwd)/typemill_data/cache/:/var/www/html/cache/ \
    -v $(pwd)/typemill_data/plugins/:/var/www/html/plugins/ \
    -v $(pwd)/typemill_data/content/:/var/www/html/content/ \
    -v $(pwd)/typemill_data/themes/:/var/www/html/themes/ \
    typemill:local

A simple docker-compose.yml file could look like this:

version: "2.0"

services:
  typemill:
    image: typemill:local
    volumes:
      - ./typemill_data/settings/:/var/www/html/settings/
      - ./typemill_data/media/:/var/www/html/media/
      - ./typemill_data/data/:/var/www/html/data/
      - ./typemill_data/cache/:/var/www/html/cache/
      - ./typemill_data/plugins/:/var/www/html/plugins/
      - ./typemill_data/content/:/var/www/html/content/
      - ./typemill_data/themes/:/var/www/html/themes/
    ports:
      - 8080:80

Volumes

  • settings: persists user profiles, site configuration, etc. (empty by default)
  • media: persists media files (empty by default)
  • data: persists data like cached navigation and stored data from plugins (empty by default)
  • cache: persists cache files for performance purposes (optional and empty by default)
  • plugins: persists installed plugins (optional and empty by default)
  • content: persists published content (will be initialized with default examples if the bound volume is empty)
  • themes: persists installed themes (will be initialized with default examples if the bound volume is empty)