shinsenter/drupal Docker 镜像
适用于PHP/Drupal的生产就绪Docker镜像,具备自动Drupal安装程序。
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 源码,完成项目初始化。
步骤:
-
创建本地空目录:
在主机创建用于存放项目代码的空目录,例如:shellmkdir drupal -
运行容器并挂载目录:
通过docker run命令启动容器,将本地目录挂载至/var/www/html。示例:shelldocker 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):
shelldocker 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 构建
dockerfileFROM 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 挂载
shelldocker 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 配置
yamlservices: 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 许可。使用或衍生该项目时,请遵守许可条款并注明出处。
来自越南 🇻🇳 的开源贡献。
shinsenter 命名空间的其他可用镜像:
更多相关 Docker 镜像与资源
以下是 shinsenter/drupal 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
镜像拉取方式
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
DockerHub 原生拉取命令
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务