drupal

shinsenter/drupal Docker 镜像

适用于PHP/Drupal的生产就绪Docker镜像,具备自动Drupal安装程序。

2 次收藏下载次数: 0状态:社区镜像维护者:shinsenter仓库类型:镜像最近更新:9 天前
下载命令
点击查看

shinsenter/drupal Docker镜像文档

镜像概述和主要用途

shinsenter/drupal 是一款面向生产环境的 Docker 镜像,内置自动 Drupal 安装器,旨在简化 Drupal 应用的部署流程。该镜像基于 PHP 环境构建,支持 Debian 和 Alpine 两种基础系统版本,可通过 Docker Hub 和 GitHub Packages 获取。

  • Docker Hub: https://hub.docker.com/r/shinsenter/drupal
  • GitHub Packages: https://code.shin.company/php/pkgs/container/drupal

核心功能和特性

  • 环境变量配置:支持通过环境变量灵活配置 PHP 及 PHP-FPM 参数,无需重建镜像即可调整设置。
  • 内置 Composer:预安装最新版本的 Composer,便于快速初始化项目依赖。
  • 自动项目初始化:当挂载空目录至容器时,自动下载 Drupal 源码,实现新项目快速搭建。
  • HTTPS 支持:内置测试用 SSL 证书,可直接替换为生产环境证书以启用安全访问。
  • 持续更新:每日构建以同步上游 PHP、基础系统及 Composer 等依赖的最新版本,确保安全性和兼容性。

使用场景和适用范围

  • 新 Drupal 项目搭建:通过挂载空目录自动拉取源码,快速初始化项目结构。
  • 现有 Drupal 项目部署:挂载本地代码目录至容器,实现现有项目的无缝运行。
  • 开发环境:代码实时挂载,本地修改可直接反映至容器,便于开发调试。
  • 生产环境:替换默认 SSL 证书后,可作为生产环境部署基础,每日更新确保依赖安全性。

详细使用方法和配置说明

创建新 Drupal 项目

当挂载空目录至容器的 /var/www/html 路径时,镜像会自动检测并下载 Drupal 源码,完成项目初始化。

步骤:

  1. 创建本地空目录:
    在主机创建用于存放项目代码的空目录,例如:

    shell
    mkdir drupal
    
  2. 运行容器并挂载目录:
    通过 docker run 命令启动容器,将本地目录挂载至 /var/www/html。示例:

    shell
    docker run -p 80:80 -p 443:443 -p 443:443/udp \
        -v ./drupal:/var/www/html \
        docker.xuanyuan.run/shinsenter/drupal:latest
    

    容器会自动识别空目录并克隆 Drupal 源码至该目录。

使用现有 Drupal 项目

将主机上的现有 Drupal 代码目录挂载至容器的 /var/www/html 路径,即可直接运行项目。由于采用卷挂载方式,主机代码修改会实时同步至容器,适用于开发或生产环境。

示例(docker run):

shell
docker run -p 80:80 -p 443:443 -p 443:443/udp \
    -v /path/to/your/existing/drupal:/var/www/html \
    docker.xuanyuan.run/shinsenter/drupal:latest

配置 HTTPS

镜像内置测试用 SSL 证书,路径为:

  • 证书:/etc/ssl/site/server.crt
  • 密钥:/etc/ssl/site/server.key

生产环境需替换为有效证书,可通过以下方式实现:

方法 1:通过 Dockerfile 构建

dockerfile
FROM docker.xuanyuan.run/shinsenter/drupal:latest

# 复制自定义证书至容器
COPY my_domain.crt /etc/ssl/site/server.crt
COPY my_domain.key /etc/ssl/site/server.key

# 可选:添加项目代码(若不通过卷挂载)
# ADD --chown=$APP_USER:$APP_GROUP ./drupal/ /var/www/html/

方法 2:通过 docker run 挂载

shell
docker run -p 80:80 -p 443:443 -p 443:443/udp \
    -v ./drupal:/var/www/html \
    -v ./my_domain.crt:/etc/ssl/site/server.crt \
    -v ./my_domain.key:/etc/ssl/site/server.key \
    docker.xuanyuan.run/shinsenter/drupal:latest

方法 3:通过 docker-compose 配置

yaml
services:
  web:
    image: docker.xuanyuan.run/shinsenter/drupal:latest
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./drupal:/var/www/html
      - ./my_domain.crt:/etc/ssl/site/server.crt
      - ./my_domain.key:/etc/ssl/site/server.key

稳定镜像标签管理

由于镜像每日更新以同步最新依赖,同一标签(如 latest)的镜像内容可能变化。为确保生产环境稳定性,建议拉取镜像后标记为自定义稳定标签(如 your-repo/drupal:stable)。

操作步骤:

shell
# 拉取最新镜像
docker pull docker.xuanyuan.run/shinsenter/drupal:latest

# 标记为稳定版本
docker tag shinsenter/drupal:latest your-repo/drupal:stable

# 推送至私有仓库(可选)
docker push your-repo/drupal:stable

之后可使用 your-repo/drupal:stable 作为生产环境基础镜像。

贡献与许可

贡献方式

若发现镜像问题或有改进建议,可通过以下方式参与:

  • 提交 Issue:https://code.shin.company/php/issues/new
  • :[]

许可协议

本项目基于 https://code.shin.company/php/blob/main/LICENSE 许可。使用或衍生该项目时,请遵守许可条款并注明出处。


来自越南 🇻🇳 的开源贡献。

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 drupal 镜像标签

docker pull docker.xuanyuan.run/shinsenter/drupal:<标签>

DockerHub 原生拉取命令

docker pull shinsenter/drupal:<标签>
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持专业版保障服务可用付费会员免广告