2018-03-24 19:32:30 +01:00

80 lines
3.3 KiB
Markdown

[![Build Status](https://travis-ci.org/roundcube/roundcubemail-docker.svg)](https://travis-ci.org/roundcube/roundcubemail-docker)
[![Docker Automated buid](https://img.shields.io/docker/build/roundcube/roundcubemail.svg)](https://hub.docker.com/r/roundcube/roundcubemail/)
[![Docker Pulls](https://img.shields.io/docker/pulls/roundcube/roundcubemail.svg)](https://hub.docker.com/r/roundcube/roundcubemail/)
# Running Roundcube in a Docker Container
The simplest method is to run the official image:
```
docker run -e ROUNDCUBEMAIL_DEFAULT_HOST=mail -d roundcube/roundcubemail
```
## Configuration/Environment Variables
The following env variables can be set to configure your Roundcube Docker instance:
`ROUNDCUBEMAIL_DEFAULT_HOST` - Hostname of the IMAP server to connect to
`ROUNDCUBEMAIL_DEFAULT_PORT` - IMAP port number; defaults to `143`
`ROUNDCUBEMAIL_SMTP_SERVER` - Hostname of the SMTP server to send mails
`ROUNDCUBEMAIL_SMTP_PORT` - SMTP port number; defaults to `587`
`ROUNDCUBEMAIL_PLUGINS` - List of built-in plugins to activate. Defaults to `archive,zipdownload`
`ROUNDCUBEMAIL_UPLOAD_MAX_FILESIZE` - File upload size limit; defaults to `5M`
By default, the image will use a local SQLite database for storing user account metadata.
It'll be created inside the `/var/www/html` directory and can be backed up from there. Please note that
this option should not be used for production environments.
### Connect to a MySQL Database
The recommended way to run Roundcube is connected to a MySQL database. Specify the following env variables to do so:
`ROUNDCUBEMAIL_DB_TYPE` - Database provider; currently supported: `mysql`, `pgsql`, `sqlite`
`ROUNDCUBEMAIL_DB_HOST` - Host (or Docker instance) name of the database service; defaults to `mysql` or `postgres` depending on linked containers.
`ROUNDCUBEMAIL_DB_USER` - The database username for Roundcube; defaults to `root` on `mysql`
`ROUNDCUBEMAIL_DB_PASSWORD` - The password for the database connection
`ROUNDCUBEMAIL_DB_NAME` - The database name for Roundcube to use; defaults to `roundcubemail`
Before starting the container, please make sure that the supplied database exists and the given database user
has privileges to create tables.
Run it with a link to the MySQL host and the username/password variables:
```
docker run --link=mysql:mysql -d roundcube/roundcubemail
```
### Advanced configuration
Apart from the above described environment variables, the Docker image also allows to add custom config files
which are merged into Roundcube's default config. Therefore the image defines a volume `/var/roundcube/config`
where additional config files (`*.php`) are searched and included. Mount a local directory with your config
files - check for valid PHP syntax - when starting the Docker container:
```
docker run -v ./config/:/var/roundcube/config/ -d roundcube/roundcubemail
```
Check the Roundcube Webmail wiki for a reference of [Roundcube config options](https://github.com/roundcube/roundcubemail/wiki/Configuration).
## Building a Docker image
Use the `Dockerfile` in this repository to build your own Docker image.
It pulls the latest build of Roundcube Webmail from the Github download page and builds it on top of a `php:7.1-apache` Docker image.
Build it from this directory with
```
docker build -t roundcubemail .
```