
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
基于Alpine的Piwigo容器,旨在简化照片画廊的部署流程。Piwigo是一款开源照片管理系统,该镜像集成Nginx和PHP-FPM,提供轻量、高效的运行环境,适合个人或小型团队搭建和管理照片库。
准备文件结构
创建Piwigo文件夹,并在其中创建compose.yaml和.env文件:
Piwigo ├── .env └── compose.yaml
编写compose.yaml
yamlnetworks: piwigo-network: external: false services: piwigo-main: image: docker.xuanyuan.run/piwigo/piwigo:latest restart: always environment: - TZ=${timezone} networks: - piwigo-network ports: - ${piwigo_port}:80 depends_on: - piwigo-db volumes: - ./piwigo-data/piwigo:/var/www/html/piwigo/ - ./piwigo-data/scripts:/usr/local/bin/scripts/ piwigo-db: image: docker.xuanyuan.run/library/mariadb:lts restart: always environment: - MARIADB_RANDOM_ROOT_PASSWORD=true - MARIADB_USER=piwigodb_user - MARIADB_DATABASE=piwigodb - MARIADB_PASSWORD=${db_user_password} - TZ=${timezone} networks: - piwigo-network volumes: - ./piwigo-data/mysql:/var/lib/mysql
配置.env文件
编辑.env文件,设置数据库密码、端口和时区:
db_user_password=your_strong_password # 建议使用强密码,可通过密码生成器生成 piwigo_port=8080 # 暴露的端口,可根据需要修改 timezone=Europe/Paris # 时区设置,如Asia/Shanghai
启动容器
在Piwigo目录下执行:
bashdocker compose up -d
如需通过域名或子路径访问,可配置Nginx反向代理。
域名访问配置
nginxserver { listen 80; server_name my_domain.tld; # 替换为你的域名 location / { proxy_pass http://127.0.0.1:8080/; # 与.env中的piwigo_port保持一致 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
子路径访问配置(如my_domain.tld/gallery)
在location段添加X-Forwarded-Prefix头:
nginxserver { listen 80; server_name my_domain.tld; location /gallery/ { # 子路径 proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Prefix /gallery; # 子路径前缀 } }
容器启动后,通过浏览器访问(如http://localhost:8080),在安装页面填写数据库信息:
db_user_password值创建管理员账户后,完成安装。
bashdocker compose down
bash# --delete-before会删除旧备份,请谨慎使用 rsync -r --delete-before ./piwigo-data/ ./piwigo-data.bck/
更新前建议先备份数据
bashdocker compose down
bashdocker compose pull
bashdocker compose up -d
注意:通过Web界面更新Piwigo不能替代容器更新,需通过上述步骤更新容器。
编辑compose.yaml,将piwigo-db的镜像改为mysql:lts(注意区分大小写)。
若需连接已存在的MySQL/MariaDB数据库,使用compose-nodb.yaml并将其重命名为compose.yaml。可通过.env文件设置piwigo_port或直接编辑compose文件修改端口。
在./piwigo-data/scripts/目录下创建user.sh脚本,可在Nginx和PHP启动前执行命令(以root权限运行)。例如安装额外依赖:
bash# 安装pandoc示例 apk add --no-cache pandoc
Alpine可用软件包列表可参考https://pkgs.alpinelinux.org/packages。
容器通过piwigo-network桥接网络通信,内部流量隔离。
所有持久化数据存储在./piwigo-data/目录:
piwigo/:Piwigo应用文件,更新时会自动同步新版本文件mysql/:MariaDB/MySQL数据库文件scripts/:用户自定义脚本目录,用于扩展功能以下是 piwigo/piwigo 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务