islandora/drupal本镜像为Drupal的基础Docker镜像,基于Islandora-DevOps/isle-buildkit drupal项目构建。作为Drupal应用的底层运行环境,镜像本身不预装Drupal核心代码,需由用户提供自定义Composer文件。镜像内置启动脚本,支持在首次运行时自动完成Drupal的安装配置。
islandora/nginx镜像提供Web服务,具体配置(如卷挂载、端口映射)请参考Nginx镜像文档。| 端口 | 描述 |
|---|---|
| 80 | HTTP服务端口 |
| 环境变量 | 默认值 | 描述 |
|---|---|---|
| DRUPAL_ENABLE_HTTPS | true | 告知PHP使用HTTPS协议(影响URL生成等功能) |
| DRUPAL_REVERSE_PROXY_IPS | 反向代理IP地址。若检测到'traefik'主机则使用其IP,否则默认0.0.0.0 |
Drupal支持多种数据库后端,默认连接配置继承自基础镜像。以下变量用于覆盖或补充数据库连接参数:
| 环境变量 | 默认值 | 描述 |
|---|---|---|
| DRUPAL_DEFAULT_DB_DRIVER | 数据库驱动,默认继承DB_DRIVER(来自基础镜像) | |
| DRUPAL_DEFAULT_DB_HOST | 数据库主机地址,默认继承DB_HOST(来自基础镜像) | |
| DRUPAL_DEFAULT_DB_PORT | 数据库端口,默认继承DB_PORT(来自基础镜像) | |
| DRUPAL_DEFAULT_DB_ROOT_PASSWORD | 数据库root用户密码,默认继承DB_ROOT_PASSWORD(来自基础镜像) | |
| DRUPAL_DEFAULT_DB_ROOT_USER | 数据库root用户名(用于创建站点数据库),默认继承DB_ROOT_USER |
用于配置默认Drupal站点(单站点模式下唯一站点,多站点模式下主站点):
| 环境变量 | 默认值 | 描述 |
|---|---|---|
| DRUPAL_DEFAULT_ACCOUNT_EMAIL | *** | 管理员账号*** |
| DRUPAL_DEFAULT_ACCOUNT_NAME | admin | 管理员用户名 |
| DRUPAL_DEFAULT_ACCOUNT_PASSWORD | password | 管理员密码(生产环境必须自定义) |
| DRUPAL_DEFAULT_DB_NAME | drupal_default | 站点数据库名称 |
| DRUPAL_DEFAULT_DB_PASSWORD | password | 数据库用户密码(生产环境必须自定义) |
| DRUPAL_DEFAULT_DB_USER | drupal_default | 数据库用户名 |
| DRUPAL_DEFAULT_EMAIL | *** | 站点管理员*** |
| DRUPAL_DEFAULT_LOCALE | en | 站点语言(地区)代码 |
| DRUPAL_DEFAULT_NAME | default | 站点名称 |
| DRUPAL_DEFAULT_PROFILE | standard | 安装配置文件(如standard、minimal) |
| DRUPAL_DEFAULT_SUBDIR | default | 站点子目录(多站点模式下用于区分站点路径) |
| DRUPAL_DEFAULT_CONFIGDIR | 从指定目录加载现有配置文件(用于配置导入) | |
| DRUPAL_DEFAULT_INSTALL | true | 若站点未安装,则自动执行安装流程 |
通过DRUPAL_SITE_{SITE}_*格式的环境变量定义额外站点,其中{SITE}为自定义站点标识(如BLOG、FORUM)。仅需定义DRUPAL_SITE_{SITE}_NAME即可创建站点,其他参数可选(默认值如下表):
| 环境变量 | 默认值 | 描述 |
|---|---|---|
| DRUPAL_SITE_{SITE}_ACCOUNT_EMAIL | *** | 站点管理员*** |
| DRUPAL_SITE_{SITE}_ACCOUNT_NAME | admin | 站点管理员用户名 |
| DRUPAL_SITE_{SITE}_ACCOUNT_PASSWORD | password | 站点管理员密码(生产环境必须自定义) |
| DRUPAL_SITE_{SITE}_DB_NAME | drupal_{SITE} | 站点数据库名称(默认格式:drupal_{SITE}) |
| DRUPAL_SITE_{SITE}_DB_PASSWORD | password | 站点数据库密码(生产环境必须自定义) |
| DRUPAL_SITE_{SITE}_DB_USER | drupal_{SITE} | 站点数据库用户名(默认格式:drupal_{SITE}) |
| DRUPAL_SITE_{SITE}_EMAIL | *** | 站点管理员*** |
| DRUPAL_SITE_{SITE}_LOCALE | en | 站点语言(地区)代码 |
| DRUPAL_SITE_{SITE}_NAME | 站点名称(必填,用于标识站点) | |
| DRUPAL_SITE_{SITE}_PROFILE | standard | 站点安装配置文件 |
| DRUPAL_SITE_{SITE}_SUBDIR | {SITE} | 站点子目录(默认与{SITE}一致) |
| DRUPAL_SITE_{SITE}_CONFIGDIR | 从指定目录加载现有配置文件 | |
| DRUPAL_SITE_{SITE}_INSTALL | true | 若站点未安装,则自动执行安装流程 |
bashdocker run -d \ --name drupal-site \ -p 80:80 \ --link nginx:nginx \ # 链接nginx容器 --link mysql:db \ # 链接数据库容器(假设数据库容器名为mysql) -e DRUPAL_DEFAULT_ACCOUNT_PASSWORD="SecurePassword123" \ # 自定义管理员密码 -e DRUPAL_DEFAULT_DB_PASSWORD="DBPassword456" \ # 自定义数据库密码 -e DB_HOST="db" \ # 数据库主机(链接的mysql容器名) -e DB_USER="root" \ # 数据库root用户 -e DB_ROOT_PASSWORD="RootPassword789" \ # 数据库root密码 islandora/drupal
yamlversion: '3.8' services: nginx: image: islandora/nginx ports: - "80:80" volumes: - nginx-conf:/etc/nginx/conf.d depends_on: - drupal drupal: image: islandora/drupal environment: # 默认站点配置 DRUPAL_DEFAULT_NAME: "main-site" DRUPAL_DEFAULT_ACCOUNT_PASSWORD: "MainSitePass123" DRUPAL_DEFAULT_DB_PASSWORD: "MainDBPass456" # 多站点配置(示例:博客站点) DRUPAL_SITE_BLOG_NAME: "blog-site" DRUPAL_SITE_BLOG_ACCOUNT_PASSWORD: "BlogPass789" DRUPAL_SITE_BLOG_DB_PASSWORD: "BlogDBPass012" # 数据库连接基础参数(供所有站点共享) DB_HOST: "mysql" DB_USER: "root" DB_ROOT_PASSWORD: "RootPass345" depends_on: - mysql mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: "RootPass345" # 需与DRUPAL侧DB_ROOT_PASSWORD一致 volumes: - mysql-data:/var/lib/mysql volumes: nginx-conf: mysql-data:
注意:
password)为强密码。--link或Docker网络配置)。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务