这些镜像为基于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镜像适用于典型安装,集成Nginx服务器并配置用于Craft CMS和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镜像用于运行队列、迁移等命令行任务,不暴露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命令行任务)。
注意:我们未提供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:
该镜像基于https://hub.docker.com/_/php%EF%BC%88Alpine 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/nginx 相关的常用 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务