Docker images that provide pre-installed ConcreteCMS instances without the hassle of configuring them.
Example: if you want to test your ConcreteCMS package with ConcreteCMS 8.5.4, you can simply run this command:
docker run --rm -it -p 8080:80 -p 33306:3306 -p 8025:8025 -v /path/to/your/package:/app/packages/package_handle ghcr.io/concrete5-community/docker5:8.5.4-full
Where:
8080
is the port where you'll browse the ConcreteCMS website (available athttp://localhost:8080
)33306
is the port where you'll find MySQL8025
is the port where you'll browse the mails sent by the ConcreteCMS website (available athttp://localhost:8025
)/path/to/your/package
is the absolute path of the ConcreteCMS package you are going to test (on Windows use\
instead of/
)package_handle
is the handle of the package
You can then install the package through the web interface or through the CLI interface (c5 c5:package:install package_handle
).
Here's the list of the available docker images:
Version | Aliases | Starting Point | Default PHP Version | Images |
---|---|---|---|---|
9.3.9 | 9.3 9 latest |
atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.3.9 ghcr.io/concrete5-community/docker5:9.3 ghcr.io/concrete5-community/docker5:9 ghcr.io/concrete5-community/docker5:latest |
9.3.9-full | 9.3-full 9-full latest-full |
atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.3.9-full ghcr.io/concrete5-community/docker5:9.3-full ghcr.io/concrete5-community/docker5:9-full ghcr.io/concrete5-community/docker5:latest-full |
9.3.8 | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.3.8 |
|
9.3.8-full | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.3.8-full |
|
9.3.7 | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.3.7 |
|
9.3.7-full | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.3.7-full |
|
9.3.6 | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.3.6 |
|
9.3.6-full | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.3.6-full |
|
9.3.5 | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.3.5 |
|
9.3.5-full | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.3.5-full |
|
9.3.4 | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.3.4 |
|
9.3.4-full | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.3.4-full |
|
9.3.3 | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.3.3 |
|
9.3.3-full | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.3.3-full |
|
9.3.2 | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.3.2 |
|
9.3.2-full | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.3.2-full |
|
9.2.9 | 9.2 | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.2.9 ghcr.io/concrete5-community/docker5:9.2 |
9.2.9-full | 9.2-full | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.2.9-full ghcr.io/concrete5-community/docker5:9.2-full |
9.2.8 | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.2.8 |
|
9.2.8-full | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.2.8-full |
|
9.2.7 | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.2.7 |
|
9.2.7-full | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.2.7-full |
|
9.2.6 | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.2.6 |
|
9.2.6-full | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.2.6-full |
|
9.2.5 | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.2.5 |
|
9.2.5-full | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.2.5-full |
|
9.2.4 | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.2.4 |
|
9.2.4-full | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.2.4-full |
|
9.2.3 | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.2.3 |
|
9.2.3-full | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.2.3-full |
|
9.2.2 | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.2.2 |
|
9.2.2-full | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.2.2-full |
|
9.2.1 | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.2.1 |
|
9.2.1-full | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.2.1-full |
|
9.2.0 | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.2.0 |
|
9.2.0-full | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.2.0-full |
|
9.1.3 | 9.1 | elemental_blank | 8.1 | ghcr.io/concrete5-community/docker5:9.1.3 ghcr.io/concrete5-community/docker5:9.1 |
9.1.3-full | 9.1-full | atomik_full | 8.1 | ghcr.io/concrete5-community/docker5:9.1.3-full ghcr.io/concrete5-community/docker5:9.1-full |
9.1.2 | elemental_blank | 8.1 | ghcr.io/concrete5-community/docker5:9.1.2 |
|
9.1.2-full | atomik_full | 8.1 | ghcr.io/concrete5-community/docker5:9.1.2-full |
|
9.1.1 | elemental_blank | 8.1 | ghcr.io/concrete5-community/docker5:9.1.1 |
|
9.1.1-full | atomik_full | 8.1 | ghcr.io/concrete5-community/docker5:9.1.1-full |
|
9.1.0 | elemental_blank | 8.1 | ghcr.io/concrete5-community/docker5:9.1.0 |
|
9.1.0-full | atomik_full | 8.1 | ghcr.io/concrete5-community/docker5:9.1.0-full |
|
9.0.2 | 9.0 | elemental_blank | 8.1 | ghcr.io/concrete5-community/docker5:9.0.2 ghcr.io/concrete5-community/docker5:9.0 |
9.0.2-full | 9.0-full | atomik_full | 8.1 | ghcr.io/concrete5-community/docker5:9.0.2-full ghcr.io/concrete5-community/docker5:9.0-full |
9.0.1 | elemental_blank | 8.1 | ghcr.io/concrete5-community/docker5:9.0.1 |
|
9.0.1-full | atomik_full | 8.1 | ghcr.io/concrete5-community/docker5:9.0.1-full |
|
8.5.19 | 8.5 8 |
elemental_blank | 7.4 | ghcr.io/concrete5-community/docker5:8.5.19 ghcr.io/concrete5-community/docker5:8.5 ghcr.io/concrete5-community/docker5:8 |
8.5.19-full | 8.5-full 8-full |
elemental_full | 7.4 | ghcr.io/concrete5-community/docker5:8.5.19-full ghcr.io/concrete5-community/docker5:8.5-full ghcr.io/concrete5-community/docker5:8-full |
8.5.18 | elemental_blank | 7.4 | ghcr.io/concrete5-community/docker5:8.5.18 |
|
8.5.18-full | elemental_full | 7.4 | ghcr.io/concrete5-community/docker5:8.5.18-full |
|
8.5.17 | elemental_blank | 7.4 | ghcr.io/concrete5-community/docker5:8.5.17 |
|
8.5.17-full | elemental_full | 7.4 | ghcr.io/concrete5-community/docker5:8.5.17-full |
|
8.5.16 | elemental_blank | 7.4 | ghcr.io/concrete5-community/docker5:8.5.16 |
|
8.5.16-full | elemental_full | 7.4 | ghcr.io/concrete5-community/docker5:8.5.16-full |
|
8.5.15 | elemental_blank | 7.4 | ghcr.io/concrete5-community/docker5:8.5.15 |
|
8.5.15-full | elemental_full | 7.4 | ghcr.io/concrete5-community/docker5:8.5.15-full |
|
8.5.14 | elemental_blank | 7.4 | ghcr.io/concrete5-community/docker5:8.5.14 |
|
8.5.14-full | elemental_full | 7.4 | ghcr.io/concrete5-community/docker5:8.5.14-full |
|
8.5.13 | elemental_blank | 7.4 | ghcr.io/concrete5-community/docker5:8.5.13 |
|
8.5.13-full | elemental_full | 7.4 | ghcr.io/concrete5-community/docker5:8.5.13-full |
|
8.5.12 | elemental_blank | 7.4 | ghcr.io/concrete5-community/docker5:8.5.12 |
|
8.5.12-full | elemental_full | 7.4 | ghcr.io/concrete5-community/docker5:8.5.12-full |
|
8.5.7 | elemental_blank | 7.4 | ghcr.io/concrete5-community/docker5:8.5.7 |
|
8.5.7-full | elemental_full | 7.4 | ghcr.io/concrete5-community/docker5:8.5.7-full |
|
8.5.6 | elemental_blank | 7.4 | ghcr.io/concrete5-community/docker5:8.5.6 |
|
8.5.6-full | elemental_full | 7.4 | ghcr.io/concrete5-community/docker5:8.5.6-full |
|
8.5.5 | elemental_blank | 7.4 | ghcr.io/concrete5-community/docker5:8.5.5 |
|
8.5.5-full | elemental_full | 7.4 | ghcr.io/concrete5-community/docker5:8.5.5-full |
|
8.5.4 | elemental_blank | 7.4 | ghcr.io/concrete5-community/docker5:8.5.4 |
|
8.5.4-full | elemental_full | 7.4 | ghcr.io/concrete5-community/docker5:8.5.4-full |
|
8.5.2 | elemental_blank | 7.4 | ghcr.io/concrete5-community/docker5:8.5.2 |
|
8.5.2-full | elemental_full | 7.4 | ghcr.io/concrete5-community/docker5:8.5.2-full |
|
5.7.5.13 | 5.7.5 5.7 |
elemental_blank | 5.6 | ghcr.io/concrete5-community/docker5:5.7.5.13 ghcr.io/concrete5-community/docker5:5.7.5 ghcr.io/concrete5-community/docker5:5.7 |
5.7.5.13-full | 5.7.5-full 5.7-full |
elemental_full | 5.6 | ghcr.io/concrete5-community/docker5:5.7.5.13-full ghcr.io/concrete5-community/docker5:5.7.5-full ghcr.io/concrete5-community/docker5:5.7-full |
You can also try the latest development versions, built directly from the official git repository.
Branch | Starting Point | Default PHP Version | Image |
---|---|---|---|
9.4.x | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.4.x |
9.4.x | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.4.x-full |
9.3.x | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.3.x |
9.3.x | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.3.x-full |
9.2.x | atomik_blank | 8.2 | ghcr.io/concrete5-community/docker5:9.2.x |
9.2.x | atomik_full | 8.2 | ghcr.io/concrete5-community/docker5:9.2.x-full |
8.5.x | elemental_blank | 7.4 | ghcr.io/concrete5-community/docker5:8.5.x |
8.5.x | elemental_full | 7.4 | ghcr.io/concrete5-community/docker5:8.5.x-full |
Pre-compiled images: https://github.com/concrete5-community/docker5/pkgs/container/docker5
Source repository: https://github.com/concrete5-community/docker5
- Password of the
admin
user:12345
- Name of the ConcreteCMS database:
c5
- Database user name:
c5
- Database user password:
12345
- Exposed port for the website:
80
- Exposed port for the database:
3306
- Exposed port for the webmail:
8025
docker5 images come with some service CLI commands.
You can get a list of them by running the ccm-help
CLI command.
Every docker image contains multiple PHP versions: 5.6, 7.4, 8.1, and 8.2.
When using the default entry point you can override the default one by specifying the CCM_PHP_VERSION
environment variable, like this:
docker run --rm -e "CCM_PHP_VERSION=7.4" ghcr.io/concrete5-community/docker5:8.5.4-full
From within the container you can use the switch-php
command:
switch-php 7.4
Every docker image contains both composer v1 and composer v2.
When using the default entry point you can override the default one by specifying the CCM_COMPOSER_VERSION
environment variable, like this:
docker run --rm -e "CCM_COMPOSER_VERSION=2" ghcr.io/concrete5-community/docker5:9.0.2-full
From within the container you can use the switch-composer
command:
switch-composer 2
Every docker image contains many PHPUnit versions.
When using the default entry point you can override the default one by specifying the CCM_PHPUNIT_VERSION
environment variable, like this:
docker run --rm -e "CCM_PHPUNIT_VERSION=10" ghcr.io/concrete5-community/docker5:9.0.2-full
From within the container you can use the switch-phpunit
command:
switch-phpunit 10
The default entry point will start the database and web services at startup, and stop them at shutdown.
You can also control them by using the ccm-service
command to start/stop/restart these services, as well as to determine if they are running.
# Start all the services
ccm-service start
# Stop all the services
ccm-service stop
# Restart only the database service
ccm-service restart db
# Check if the PHP-FPM service and the Nginx services are running
ccm-service status php-fpm nginx
This repository contains a copuple of scheduled GitHub Actions. If you want to be notified about problems, you can subscribe to this Telegram channel.