Skip to content

typecho/Dockerfile

Repository files navigation

Quick reference

Supported tags and respective Dockerfile links

How to use this image

Start via docker run

$ docker run --name typecho-server -e TYPECHO_SITE_URL=https://your-domain.com -d joyqi/typecho:nightly-php7.4-apache

Start via docker-compose

version: '3.7'

services:
  typecho:
    image: joyqi/typecho:nightly-php7.4-apache
    container_name: typecho-server
    restart: always
    environment:
      - TYPECHO_SITE_URL=https://your-domain.com
    ports:
      - 8080:80
    volumes:
      - /var/typecho:/app/usr
  1. Replace your-domain.com with your own domain name.
  2. Port 8080 is just an example, you can change it to any port you want.
  3. Mount local directory /var/typecho to container directory /app/usr for persistent data.

How to extend this image

Environment Variables

Name Description
TIMEZONE default: UTC
Server timezone, eg: Asia/Shanghai
MEMORY_LIMIT PHP memory limit, eg: 100M
MAX_POST_BODY eg: 50M
TYPECHO_INSTALL default: 0
Set to 1 if you want to run installation script automatically.
TYPECHO_DB_ADAPTER default: Pdo_Mysql
Database driver for typecho, could be: Pdo_Mysql, Pdo_SQLite, Pdo_Pgsql, Mysqli, SQLite, Pgsql.
TYPECHO_DB_HOST default: localhost
Database server host, only available for mysql and pgsql drivers.
TYPECHO_DB_PORT default: 3306(for mysql) or 5432(for pgsql)
Database server port, only available for mysql and pgsql drivers.
TYPECHO_DB_USER * required for mysql and pgsql drivers
Database username, only available for mysql and pgsql drivers.
TYPECHO_DB_PASSWORD * required for mysql and pgsql drivers
Database password, only available for mysql and pgsql drivers.
TYPECHO_DB_FILE * required for sqlite driver
Database file storage path, only available for sqlite driver.
TYPECHO_DB_DATABASE * required for mysql and pgsql drivers
Database name of typecho, only available for mysql and pgsql drivers.
TYPECHO_DB_PREFIX default: typecho_
The prefix of all tables.
TYPECHO_DB_ENGINE default: InnoDB
Mysql database engine, only available for mysql driver.
TYPECHO_DB_CHARSET default: utf8(for pgsql) or utf8mb4(for mysql)
Database charset, only available for mysql and pgsql drivers.
TYPECHO_DB_NEXT default: none
The action to perform when there are already having some application tables in database.
* none: Do nothing, just exit.
* keep: Keep these tables, and skip the init step.
* force: Delete these tables, and init data again.
TYPECHO_SITE_URL * required
Your website url, for example: https://your-domain.com
TYPECHO_USER_NAME default: typecho
The admin username to create.
TYPECHO_USER_PASSWORD default: a random 8 characters string.
The admin password to create.
TYPECHO_USER_MAIL default: [email protected]
The email address of admin to create.

Port

Image Tag Port Description
*-fpm 9000 FastCGI port for php-fpm.
*-apache 80 Http port for apache.
*-cli No port exposed.

Volume

You can mount some local directories to these container directories for persistent data.

Container Directory Description
/app/usr Typecho data directory. If you mount this directory to local, the following directories will be included.
/app/usr/plugins Typecho plugins directory.
/app/usr/themes Typecho themes directory.
/app/usr/uploads Typecho uploads directory.