More build options, such as optional install of PHPMyAdmin
Some improvements to email security
Extra Apache options such as enabling modules and including supplementary vhosts
(Hopefully) numerous bug fixes and tweaks
This version currently makes no changes to Unimock's helper do script. In this version it's currently out-of-use; this may change in the future however!
Or, rename the file to something like docker-compose.build.yml, and then create a separate docker-compose.yml, using the extends functionality to create your configuration:
If using extends: docker compose -f docker-compose.build.yml build
Start the container: docker compose up -d
Initally test the build by connecting to the ispconfig control panel: http://<localhost>:8080
Do addition verification!
Ideally, push your image to Docker Cloud
Mount persistant volumes and judiciously copy configuration files from the container (see below)
Persistent data
Unlike Unimock's original, I've taken a more standard approach based around normal volume mounting. With some careful and judicious use of mounts, you can hopefully get a simpler setup. Here is an example of my full list of mounts:
Install Redis? Required for Rspamd, but can be configured to another host with REDIS_HOST environmental variable
BUILD_TZ
Europe/London
Timezone for the container
BUILD_LOCALE
en_GB
POSIX (ISO 15897) locale code for the container. UTF-8 is required and will automatically be appended
Less-essential options
Argument
Default
Comments
BUILD_ROUNDCUBE_DB
roundcube
Roundcube database name
BUILD_ROUNDCUBE_USER
roundcube
Roundcube database username
BUILD_ROUNDCUBE_PW
secretpassword
Roundcube database password
BUILD_PHPMYADMIN_USER
phpmyadmin
PHPMyAdmin database username
BUILD_PHPMYADMIN_PW
phpmyadmin
PHPMyAdmin database password
BUILD_PHPMYADMIN_VERSION
4.9.0.1
Version of PHPMyAdmin to install
BUILD_MYSQL_PW
pass
Root password for MariaDB local server, if installed
BUILD_ISPCONFIG_MYSQL_DATABASE
dbispconfig
ISPConfig database name
BUILD_ISPCONFIG_PORT
8080
ISPConfig web app port number (control panel, PHPMyAdmin, Roundcube)
Using a remote SQL server
It is possible to connect to a remote SQL server during the build. This would require using the compose file extra_hosts option. However, this is problematic; in particular ISPConfig expects its database not to exist at installation. For myself, I followed the following manual strategy:
Build the container with the Mariadb server
BUILD_MYSQL_HOST="localhost"
Dump databases and users from the container
Import into shared SQL server
Use the MYSQL_HOST environmental var to repoint the container to your shared server at runtime
Disable the container's MariaDB server using the DISABLED_SERVICES environmental variable
Argument
Default
Comments
BUILD_MYSQL_HOST
localhost
Hostname of the SQL server. When localhost, this will build MariaDB Server
BUILD_MYSQL_REMOTE_ACCESS_HOST
172.%.%.%
When BUILD_MYSQL_HOST != localhost, this will configure database users to allow connections from this host pattern.
BUILD_ISPCONFIG_DROP_EXISTING
no
DANGER: If existing ISPConfig tables are found in the database, they will be dropped before installation! Without this, the installation fails. Of course data will be lost!
Options not recommended for individual customization