这些镜像为基于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镜像),需要自行配置Web服务器。
| 镜像 | 用途 | 环境 |
|---|---|---|
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配置的Nginx服务器和php-fpm。
| 镜像 | 用途 | 环境 |
|---|---|---|
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镜像用于运行队列、迁移等Craft 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 |
主要镜像类型包括处理Web应用的php-fpm和运行队列及其他Craft CLI命令的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用户,示例如下(为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 |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务