Docker image for Craft CMS. Available on Docker Hub as blackpepper/craftcms.
First start a MySQL database for Craft:
docker run --name database \
-e MYSQL_ROOT_PASSWORD=password \
-e MYSQL_USER=craft \
-e MYSQL_PASSWORD=password \
-e MYSQL_DATABASE=craft \
-d mariadb:10
Then run Craft:
docker run --name craftcms \
-e DB_SERVER=database \
-e DB_USER=craft \
-e DB_PASSWORD=password \
-e DB_DATABASE=craft \
-e DB_DRIVER=mysql \
--link database \
-p 8080:80 \
-d blackpepper/craftcms
Visit http://localhost:8080/admin to create a site.
Alternatively use Docker Compose:
version: '2.4'
services:
craftcms:
image: blackpepper/craftcms
environment:
DB_SERVER: database
DB_USER: craft
DB_PASSWORD: password
DB_DATABASE: craft
DB_DRIVER: mysql
links:
- database
ports:
- 8080:80
database:
image: mariadb:10
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_USER: craft
MYSQL_PASSWORD: password
MYSQL_DATABASE: craft
ports:
- 3306:3306
See the demo project to see this in action.
The following Docker image tags are available:
Craft Version | Tag |
---|---|
3 | latest |
2 | 2 |
Use the following environment variables to configure Craft at runtime:
Variable Name | Craft Setting |
---|---|
DB_DSN |
mysql:host=localhost;port=3306;dbname=craft |
DB_USER |
user |
DB_PASSWORD |
password |
CRAFT_ALLOW_UPDATES |
allowUpdates |
CRAFT_COOLDOWN_DURATION |
cooldownDuration |
CRAFT_DEV_MODE |
devMode |
CRAFT_ENABLE_TEMPLATE_CACHING |
enableTemplateCaching |
CRAFT_MAX_UPLOAD_FILE_SIZE |
maxUploadFileSize |
CRAFT_OMIT_SCRIPT_NAME_IN_URLS |
omitScriptNameInUrls |
CRAFT_PHP_MAX_MEMORY_LIMIT |
phpMaxMemoryLimit |
CRAFT_SITE_URL |
siteUrl |
CRAFT_TRANSFORM_GIFS |
transformGifs |
CRAFT_USE_COMPRESSED_JS |
useCompressedJs |
CRAFT_USER_SESSION_DURATION |
userSessionDuration |
Use as a base image to customise Craft templates and public assets:
FROM blackpepper/craftcms
COPY public /var/www/web
COPY templates /var/www/templates
This image aspires to track the latest build of Craft CMS 3. Use the following build arguments to customise the Craft CMS version at build time:
Argument | Description |
---|---|
CMS_VERSION |
The version of Craft CMS to use, e.g. 3.6.5.1 |
CRAFT_VERSION |
The version of the Craft CMS starter to use, e.g. 1.1.2 |
For example, to build an image for Craft CMS version 3.6.5.1:
docker build --build-arg CMS_VERSION=3.6.5.1 --build-arg CRAFT_VERSION=1.1.2 .