arm32v6/drupal本镜像为官方drupal镜像的arm32v6架构专用版本。Drupal是一个免费开源的内容管理框架,采用PHP编写并基于GNU通用公共许可证发布。它被用作后端框架,支持从个人博客到企业、网站等各类网站建设,包括白宫官网(.gov)和英国数据.gov.uk等。
11.2.5-php8.4-fpm-alpine3.22, 11.2-php8.4-fpm-alpine3.22, 11-php8.4-fpm-alpine3.22, php8.4-fpm-alpine3.22, 11.2.5-php8.4-fpm-alpine, 11.2-php8.4-fpm-alpine, 11-php8.4-fpm-alpine, php8.4-fpm-alpine, 11.2.5-fpm-alpine3.22, 11.2-fpm-alpine3.22, 11-fpm-alpine3.22, fpm-alpine3.22, 11.2.5-fpm-alpine, 11.2-fpm-alpine, 11-fpm-alpine, fpm-alpine11.2.5-php8.4-fpm-alpine3.21, 11.2-php8.4-fpm-alpine3.21, 11-php8.4-fpm-alpine3.21, php8.4-fpm-alpine3.21, 11.2.5-fpm-alpine3.21, 11.2-fpm-alpine3.21, 11-fpm-alpine3.21, fpm-alpine3.2111.2.5-php8.3-fpm-alpine3.22, 11.2-php8.3-fpm-alpine3.22, 11-php8.3-fpm-alpine3.22, php8.3-fpm-alpine3.22, 11.2.5-php8.3-fpm-alpine, 11.2-php8.3-fpm-alpine, 11-php8.3-fpm-alpine, php8.3-fpm-alpine11.2.5-php8.3-fpm-alpine3.21, 11.2-php8.3-fpm-alpine3.21, 11-php8.3-fpm-alpine3.21, php8.3-fpm-alpine3.2110.5.4-php8.4-fpm-alpine3.22, 10.5-php8.4-fpm-alpine3.22, 10-php8.4-fpm-alpine3.22, 10.5.4-php8.4-fpm-alpine, 10.5-php8.4-fpm-alpine, 10-php8.4-fpm-alpine, 10.5.4-fpm-alpine3.22, 10.5-fpm-alpine3.22, 10-fpm-alpine3.22, 10.5.4-fpm-alpine, 10.5-fpm-alpine, 10-fpm-alpine10.5.4-php8.4-fpm-alpine3.21, 10.5-php8.4-fpm-alpine3.21, 10-php8.4-fpm-alpine3.21, 10.5.4-fpm-alpine3.21, 10.5-fpm-alpine3.21, 10-fpm-alpine3.21启动一个基本的drupal实例:
console$ docker run --name some-drupal -d arm32v6/drupal
如需从主机访问容器,可以进行端口映射:
console$ docker run --name some-drupal -p 8080:80 -d arm32v6/drupal
然后通过浏览器访问 http://localhost:8080 或 [***]。首次访问时,系统会引导你完成Drupal的安装过程。
console$ docker run -d --name some-mysql --network some-network \ -e MYSQL_DATABASE=drupal \ -e MYSQL_USER=user \ -e MYSQL_PASSWORD=password \ -e MYSQL_ROOT_PASSWORD=password \ mysql:5.7
console$ docker run --name some-drupal --network some-network -p 8080:80 -d arm32v6/drupal
console$ docker run -d --name some-postgres --network some-network \ -e POSTGRES_DB=drupal \ -e POSTGRES_USER=user \ -e POSTGRES_PASSWORD=pass \ postgres:11
console$ docker run --name some-drupal --network some-network -p 8080:80 -d arm32v6/drupal
为确保Drupal数据持久化,建议将以下目录挂载为卷:
/var/www/html/modules - 模块目录/var/www/html/profiles - 配置文件目录/var/www/html/themes - 主题目录/var/www/html/sites - 站点配置和数据目录console# 首先从镜像中复制初始sites目录到主机 $ docker run --rm arm32v6/drupal tar -cC /var/www/html/sites . | tar -xC /path/on/host/sites # 然后启动容器并挂载目录 $ docker run --name some-drupal --network some-network -d \ -v /path/on/host/modules:/var/www/html/modules \ -v /path/on/host/profiles:/var/www/html/profiles \ -v /path/on/host/sites:/var/www/html/sites \ -v /path/on/host/themes:/var/www/html/themes \ arm32v6/drupal
console# 创建专用卷 $ docker volume create drupal-sites $ docker volume create drupal-modules $ docker volume create drupal-profiles $ docker volume create drupal-themes # 初始化sites卷 $ docker run --rm -v drupal-sites:/temporary/sites arm32v6/drupal cp -aRT /var/www/html/sites /temporary/sites # 启动容器并挂载卷 $ docker run --name some-drupal --network some-network -d \ -v drupal-modules:/var/www/html/modules \ -v drupal-profiles:/var/www/html/profiles \ -v drupal-sites:/var/www/html/sites \ -v drupal-themes:/var/www/html/themes \ arm32v6/drupal
创建compose.yaml文件:
yaml# Drupal with PostgreSQL # 访问地址: "http://localhost:8080" # 初始Drupal设置时: # 数据库类型: PostgreSQL # 数据库名称: postgres # 数据库用户名: postgres # 数据库密码: example # 高级选项 > 数据库主机: postgres services: drupal: image: arm32v6/drupal:10-fpm-alpine ports: - 8080:80 volumes: - drupal-modules:/var/www/html/modules - drupal-profiles:/var/www/html/profiles - drupal-sites:/var/www/html/sites - drupal-themes:/var/www/html/themes restart: always depends_on: - postgres postgres: image: arm32v6/postgres:16-alpine environment: POSTGRES_PASSWORD: example POSTGRES_USER: postgres POSTGRES_DB: postgres volumes: - postgres-data:/var/lib/postgresql/data restart: always volumes: drupal-modules: drupal-profiles: drupal-sites: drupal-themes: postgres-data: networks: default: driver: bridge
启动服务:
console$ docker compose up -d
本镜像不包含所有可能的PHP扩展。如需添加额外扩展,需基于本镜像创建自定义Dockerfile:
dockerfileFROM arm32v6/drupal:10-fpm-alpine # 安装所需的PHP扩展 RUN apk add --no-cache \ libpng-dev \ libjpeg-turbo-dev \ freetype-dev \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j$(nproc) gd mysqli pdo pdo_mysql
构建并使用自定义镜像:
console$ docker build -t my-custom-drupal . $ docker run --name some-drupal -p 8080:80 -d my-custom-drupal
为增强安全性,可以非root用户身份运行容器:
console$ docker run --name some-drupal -u 1000:1000 -p 8080:80 -d arm32v6/drupal
arm32v6/drupal镜像提供多种变体,适用于不同场景:
arm32v6/drupal:<version>默认镜像,包含Apache Web服务器和PHP。适合大多数用例,开箱即用。
arm32v6/drupal:<version>-fpm包含PHP-FPM(PHP FastCGI进程管理器),适用于需要与反向代理(如Nginx)配合使用的场景。
使用此变体时,需要配置反向代理服务器。例如,使用Nginx作为反向代理:
nginxserver { listen 80; server_name example.com; root /var/www/html; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass some-drupal:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
警告: FastCGI协议本身不包含安全机制,不应将FPM端口直接暴露到公网。
Drupal软件遵循GNU通用公共许可证。
本镜像中包含的其他软件可能具有不同的许可证,如基础发行版中的Bash等工具以及主要软件的任何直接或间接依赖项。
有关更多许可信息,请查看repo-info仓库的drupal目录。
使用预构建镜像时,镜像用户有责任确保对本镜像的任何使用都符合其中包含的所有软件的相关许可。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务