这些镜像为基于Docker的Craft CMS部署提供起点。它们离散、轻量,并预配置以满足Craft在生产和开发环境中的需求。
提供三种主要类型的镜像,适用于不同应用场景:php-fpm、nginx和cli。每种镜像允许开发者选择PHP版本(例如craftcms/nginx:7.4)。
每种镜像和PHP版本还提供-dev变体,已安装Xdebug,适用于本地开发(例如craftcms/php-fpm:7.4-dev)。不带-dev的镜像为生产环境版本。
注意:本地开发不强制使用
-dev镜像,它们提供Xdebug仅为便于调试。
php-fpm镜像是基础镜像(也用于nginx镜像),需自备服务器。
| 镜像 | 用途 | 环境 |
|---|---|---|
craftcms/php-fpm:8.0 | Web | production |
craftcms/php-fpm:8.0-dev | Web | development |
craftcms/php-fpm:7.4 | Web | production |
craftcms/php-fpm:7.4-dev | Web | development |
craftcms/php-fpm:7.3 | Web | production |
craftcms/php-fpm:7.3-dev | Web | development |
craftcms/php-fpm:7.2 | Web | production |
craftcms/php-fpm:7.2-dev | Web | development |
craftcms/php-fpm:7.1 | Web | production |
craftcms/php-fpm:7.1-dev | Web | development |
craftcms/php-fpm:7.0 | Web | production |
craftcms/php-fpm:7.0-dev | Web | development |
nginx镜像适用于典型安装,包含为Craft CMS和php-fpm配置的Nginx服务器。
| 镜像 | 用途 | 环境 |
|---|---|---|
craftcms/nginx:8.0 | Web | production |
craftcms/nginx:8.0-dev | Web | development |
craftcms/nginx:7.4 | Web | production |
craftcms/nginx:7.4-dev | Web | development |
craftcms/nginx:7.3 | Web | production |
craftcms/nginx:7.3-dev | Web | development |
craftcms/nginx:7.2 | Web | production |
craftcms/nginx:7.2-dev | Web | development |
craftcms/nginx:7.1 | Web | production |
craftcms/nginx:7.1-dev | Web | development |
craftcms/nginx:7.0 | Web | production |
craftcms/nginx:7.0-dev | Web | development |
cli镜像用于运行队列、迁移等命令,不暴露HTTP/S或PHP-FPM端口。
| 镜像 | 用途 | 环境 |
|---|---|---|
craftcms/cli:8.0 | 队列 | production |
craftcms/cli:8.0-dev | 队列 | development |
craftcms/cli:7.4 | 队列 | production |
craftcms/cli:7.4-dev | 队列 | development |
craftcms/cli:7.3 | 队列 | production |
craftcms/cli:7.3-dev | 队列 | development |
craftcms/cli:7.2 | 队列 | production |
craftcms/cli:7.2-dev | 队列 | development |
craftcms/cli:7.1 | 队列 | production |
craftcms/cli:7.1-dev | 队列 | development |
craftcms/cli:7.0 | 队列 | production |
craftcms/cli:7.0-dev | 队列 | development |
主要有两种镜像类型:php-fpm用于处理Web应用,cli用于运行队列和其他Craft CLI命令。
注意:我们不提供Web服务器镜像,因为选择取决于项目需求。但我们提供示例说明如何将Nginx或Caddy与
php-fpm镜像配合使用。
以下示例使用Docker多阶段构建在单独的层中安装Composer依赖,然后将其复制到最终镜像中。
dockerfile# 使用多阶段构建处理依赖 FROM composer:1 as vendor COPY composer.json composer.json COPY composer.lock composer.lock RUN composer install --ignore-platform-reqs --no-interaction --prefer-dist FROM craftcms/php-fpm:7.4 # 用户为`www-data`,因此使用该用户和组复制文件 COPY --chown=www-data:www-data --from=vendor /app/vendor/ /app/vendor/ COPY --chown=www-data:www-data . .
以下示例使用craftcms/nginx仓库并安装mysql-client工具,以支持从Craft CMS控制面板进行备份。
dockerfile# Composer依赖 FROM composer:1 as vendor COPY composer.json composer.json COPY composer.lock composer.lock RUN composer install --ignore-platform-reqs --no-interaction --prefer-dist FROM craftcms/nginx:7.4 # 切换到root用户安装mysql工具 USER root RUN apk add --no-cache mysql-client USER www-data # 用户为`www-data`,因此使用该用户和组复制文件 COPY --chown=www-data:www-data --from=vendor /app/vendor/ /app/vendor/ COPY --chown=www-data:www-data . .
镜像设计为由www-data用户运行,该用户拥有镜像的/app目录。非root用户运行是Docker最佳实践,尤其是生产环境中的容器镜像。
注意:可使用
USER root指令切换回root用户以安装所需的额外包。
如果项目部署到基于Docker的环境(如AWS ECS),建议本地使用Docker运行。以下Docker Compose文件将设置包含以下服务的本地环境:
web服务:处理PHP和Nginx运行mysql服务:存储内容数据console服务:本地运行队列redis服务:处理队列和缓存yamlversion: "3.6" services: web: image: craftcms/nginx:7.4-dev volumes: - .:/app env_file: .env console: image: craftcms/cli:7.4-dev volumes: - .:/app env_file: .env command: ["./craft", "queue/listen"] mysql: image: mysql:8.0 ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: SuperPassword123456! MYSQL_DATABASE: dev_craftcms MYSQL_USER: craftcms MYSQL_PASSWORD: SecretPassword volumes: - db_data:/var/lib/mysql redis: image: redis:5-alpine ports: - 6379:6379 volumes: db_data:
此镜像基于官方Docker PHP FPM镜像(Alpine Linux),因此可使用所有工具安装PHP扩展。安装扩展需切换到root用户。以下示例切换到root用户安装PHP 7.4的sockets扩展,并在安装后切换回www-data:
dockerfileFROM craftcms/php-fpm:7.4 # 切换到root用户 USER root RUN docker-php-ext-install sockets USER www-data # 用户为www-data,因此使用该用户和组复制文件 COPY --chown=www-data:www-data --from=vendor /app/vendor/ /app/vendor/ COPY --chown=www-data:www-data . .
可通过为php-fpm或cli镜像设置环境变量来自定义某些PHP设置。
以下示例将PHP内存限制设置为512M(默认256M):
yamlversion: "3.6" services: php-fpm: image: craftcms/php-fpm:7.4-dev volumes: - .:/app env_file: .env environment: PHP_MEMORY_LIMIT: 512M # ...
| PHP设置 | 环境变量 | 默认值 |
|---|---|---|
memory_limit | PHP_MEMORY_LIMIT | 256M |
max_execution_time | PHP_MAX_EXECUTION_TIME | 120 |
upload_max_filesize | PHP_UPLOAD_MAX_FILESIZE | 20M |
max_input_vars | PHP_MAX_INPUT_VARS | 1000 |
post_max_size | PHP_POST_MAX_SIZE | 8M |
opcache.enable | PHP_OPCACHE_ENABLE | 1 |
opcache.revalidate_freq | PHP_OPCACHE_REVALIDATE_FREQ | 0 |
opcache.validate_timestamps | PHP_OPCACHE_VALIDATE_TIMESTAMPS | 0 |
opcache.max_accelerated_files | PHP_OPCACHE_MAX_ACCELERATED_FILES | 10000 |
opcache.memory_consumption | PHP_OPCACHE_MEMORY_CONSUMPTION | 256 |
opcache.max_wasted_percentage | PHP_OPCACHE_MAX_WASTED_PERCENTAGE | 10 |
opcache.interned_strings_buffer | PHP_OPCACHE_INTERNED_STRINGS_BUFFER | 16 |
opcache.fast_shutdown | PHP_OPCACHE_FAST_SHUTDOWN | 1 |
以下是 craftcms/php-fpm 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务