Sign inSign up

micrograils/discuz

By micrograils

•Updated 10 months ago

nginx + php_fpm82 + discuz3.5, base on alpine.

Image
Content management system
0

1.6K

micrograils/discuz repository overview

Docker Image Size Docker Pulls Platforms

⁠micrograils/discuz

基于 Alpine Linux 的 Discuz! 论坛 Docker 镜像,集成了 Nginx + PHP-FPM,开箱即用。


⁠✨ 特点

  • 超轻量:基于 Alpine Linux,体积小,启动快
  • 开箱即用:内置 Nginx + PHP-FPM,通过 Supervisor 统一管理
  • 多架构支持:支持 AMD64 / ARM64 双平台
  • 自动 HTTPS 适配:根据 X-Forwarded-Proto 头部自动判断 HTTPS
  • 静态资源缓存:对 JS/CSS/图片等静态资源自动设置长期缓存
  • PHP 优化配置:已调整 upload_max_filesize、post_max_size、memory_limit 等参数

⁠📚 版本说明

镜像标签格式:micrograils/discuz:<VERSION>

标签类型示例说明
版本号3.5.20250901具体的 Discuz! 发布版本,稳定可靠,推荐生产环境使用
latestlatest跟随最新的正式发布版本(x.x.xxx 格式)
mastermaster跟随 DiscuzX 官方 v3.5 分支的最新代码,包含未发布的功能

⁠🚀 快速上手

⁠1. 快速启动(需额外准备数据库)
docker run -d \
    --name discuz \
    -p 12345:80 \
    micrograils/discuz:latest

或带持久化数据:

docker run -d \
    --name discuz \
    -p 12345:80 \
    -v $PWD/data/discuz:/var/www/html \
    micrograils/discuz:latest

启动后访问 http://localhost:12345,进入 Discuz! 安装向导。

⁠2. 使用 Docker Compose 部署

示例 docker-compose.yml 如下,请自行修改数据库密码等信息:

services:
  discuz_web:
    image: micrograils/discuz:3.5.20250901
    restart: always
    volumes:
      - ./data/discuz:/var/www/html
    ports:
      - "12345:80"
    depends_on:
      - discuz_db
    networks:
      - discuz_net
  discuz_db:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root_password
      MYSQL_DATABASE: discuz
      MYSQL_USER: discuz
      MYSQL_PASSWORD: discuz_password
    volumes:
      - ./data/mysql:/var/lib/mysql
    networks:
      - discuz_net
networks:
  discuz_net:
    driver: bridge

安装时填写数据库信息:

  • 数据库服务器:discuz_db
  • 数据库名:discuz
  • 数据库用户名:discuz
  • 数据库密码:discuz_password

⁠🔧 进阶教程

⁠1. 自定义配置

如果最终部署在 HTTPS 后面(例如nginx),参考配置如下:

server {
    listen 443;
    server_name your_domain.com;

    # HTTPS 配置
    ssl on;
    ssl_certificate /path/to/certificate.pem;
    ssl_certificate_key /path/to/privatekey.pem;

    location / {
        proxy_pass http://127.0.0.1:12345;
        proxy_set_header Host $host;
        # 重要
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

无论是否开启了 HTTPS:

  1. X-Forwarded-Proto 头部都会被识别,并根据其值自动调整配置
  2. discuz 后台: 全局 - 站点设置 - 站点URL 调整为公网 url,例如 https://your_domain.com
  3. 然后继续后台:工具 - 更新缓存

注:某些情况下,虽然是在 HTTPS 后面,但 X-Forwarded-Proto 头部可能不存在(比如前面的反代配置你没有修改权利),此时需要手动调整配置:

docker exec -it ${discuz_web_real_id}$ /bin/sh

sed -i 's/fastcgi_param HTTPS $php_https;/fastcgi_param HTTPS on;/g' /etc/nginx/http.d/default.conf

nginx -t && nginx -s reload

⁠🔍 常见问题

Q:如何查看当前 PHP 版本和配置?

docker exec -it discuz php -v
docker exec -it discuz php -i

Q:如何进入容器调试?

docker exec -it discuz /bin/sh

Q:如何查看 Nginx 日志?

docker logs discuz

⁠相关链接


维护者文档(技术细节 / 构建 / 版本管理 / 维护)见 MAINTENANCE.md⁠。

Tag summary

Content type

Image

Digest

sha256:787a9fffb…

Size

29.6 MB

Last updated

10 months ago

docker pull micrograils/discuz