You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Dockerfile创建用于本地测试的自定义Drupal镜像?

自定义本地测试用Drupal Dockerfile配置指南

核心指令配置说明

WORKDIR

设置容器内的工作目录,后续所有指令(RUN/COPY/CMD等)都会基于此路径执行。官方Drupal镜像默认将Drupal代码放在/var/www/html,自定义镜像建议沿用这个路径,避免路径混乱:

WORKDIR /var/www/html

RUN

用于镜像构建阶段执行一次性命令,常见场景包括安装依赖、扩展工具、创建目录等:

  • 安装Drupal必需的PHP扩展(比如GD、MySQLi,官方镜像可能未预装):
    RUN apt-get update && apt-get install -y libpng-dev libjpeg-dev \
        && docker-php-ext-configure gd --with-jpeg \
        && docker-php-ext-install gd mysqli
    
  • 安装Drush(Drupal命令行管理工具,本地测试必备):
    RUN composer require drush/drush --dev
    
  • 创建自定义模块/主题/配置文件目录:
    RUN mkdir -p modules/custom themes/custom profiles/custom config/sync
    

CMD

指定容器启动后默认执行的命令,本地测试用Apache镜像的话,直接沿用官方镜像的启动命令即可,保证容器启动后自动运行Web服务:

CMD ["apache2-foreground"]

如果使用PHP-FPM版本的基础镜像,需改为对应启动命令:CMD ["php-fpm"]

完整Dockerfile示例(本地测试用)

# 基于官方Drupal 10 Apache镜像
FROM drupal:10-apache

# 设置工作目录
WORKDIR /var/www/html

# 安装额外PHP扩展和系统依赖
RUN apt-get update && apt-get install -y \
    libpng-dev libjpeg-dev libpq-dev \
    && docker-php-ext-configure gd --with-jpeg \
    && docker-php-ext-install gd mysqli pdo pdo_mysql \
    && apt-get clean && rm -rf /var/lib/apt/lists/*

# 安装Drush(通过Composer)
RUN composer require drush/drush --dev

# 创建自定义目录
RUN mkdir -p modules/custom themes/custom profiles/custom config/sync

# 复制本地自定义代码(可选,根据自己需求取消注释)
# COPY ./modules/custom/ ./modules/custom/
# COPY ./themes/custom/ ./themes/custom/
# COPY ./config/sync/ ./config/sync/

# 启动Apache服务
CMD ["apache2-foreground"]

额外提示

  • 本地测试时,建议通过docker-compose挂载本地代码目录到容器的/var/www/html/modules/custom等路径,避免每次修改代码都重新构建镜像。
  • 如果需要启用HTTPS,可以在RUN阶段配置Apache的SSL证书和虚拟主机配置文件。

内容的提问来源于stack exchange,提问作者Se55

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 16:42:23