
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像基于GitHub仓库https://github.com/jlm/maint%E6%9E%84%E5%BB%BA%EF%BC%8C%E5%B0%86%E5%8E%9F%E5%9F%BA%E4%BA%8EExcel%E5%B7%A5%E4%BD%9C%E7%B0%BF%E7%9A%84802.1%E7%BB%B4%E6%8A%A4%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BD%AC%E6%8D%A2%E4%B8%BAWeb%E5%BA%94%E7%94%A8%E3%80%82%E5%8E%9FExcel%E5%B7%A5%E4%BD%9C%E7%B0%BF%E4%BE%9D%E8%B5%96%E5%A4%8D%E6%9D%82%E5%85%AC%E5%BC%8F%E7%94%9F%E6%88%90%E9%9D%99%E6%80%81HTML%EF%BC%8C%E7%BB%B4%E6%8A%A4%E5%9B%B0%E9%9A%BE%E4%B8%94%E6%98%93%E5%87%BA%E9%94%99%EF%BC%8C%E6%9C%ACWeb%E5%BA%94%E7%94%A8%E6%8F%90%E4%BE%9B%E6%9B%B4%E4%BE%BF%E6%8D%B7%E7%9A%84%E7%AE%A1%E7%90%86%E6%96%B9%E5%BC%8F%EF%BC%8C%E6%94%AF%E6%8C%81%E6%95%B0%E6%8D%AE%E5%AF%BC%E5%85%A5%E3%80%81%E7%94%A8%E6%88%B7%E8%AE%A4%E8%AF%81%E5%92%8C%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86%E3%80%82
1. 准备数据库存储
在Docker主机上创建持久化存储目录并配置权限:
bashsudo mkdir -p /srv/docker/postgresql/data sudo chmod -R go-rwx /srv sudo chown 999.root /srv/docker/postgresql/data
2. 配置docker-compose文件
复制仓库中的example-deploy-docker-compose.yml为deploy-docker-compose.yml,并根据需求编辑配置:
yamlversion: '3' services: db: image: postgres:9.6 volumes: - /srv/docker/postgresql/data:/var/lib/postgresql/data environment: - POSTGRES_USER=maintuser - POSTGRES_PASSWORD=yourpassword - POSTGRES_DB=maint_production restart: always web: image: yourusername/maint_web:latest depends_on: - db environment: - DATABASE_URL=postgres://maintuser:yourpassword@db:5432/maint_production - SECRET_KEY_BASE=your_generated_secret_key - DEVISE_PEPPER=your_generated_pepper - COMMITTEE=Your Committee Name - VIRTUAL_HOST=maint.example.com # 仅当使用nginx-proxy时需要 - LETSENCRYPT_HOST=maint.example.com # 仅当使用letsencrypt时需要 - LETSENCRYPT_EMAIL=admin@example.com # 仅当使用letsencrypt时需要 restart: always
3. 启动应用
bash# 前台运行(测试用) docker-compose -f deploy-docker-compose.yml up # 后台运行(生产环境) docker-compose -f deploy-docker-compose.yml up -d
应用初始化需要几分钟时间,完成后可通过http://localhost:80访问。
| 环境变量 | 说明 |
|---|---|
POSTGRES_USER | PostgreSQL数据库用户名,需与web服务中的DATABASE_URL对应 |
POSTGRES_PASSWORD | PostgreSQL数据库密码,需与web服务中的DATABASE_URL对应 |
POSTGRES_DB | 数据库名称 |
SECRET_KEY_BASE | Rails应用密钥,可通过openssl rand -hex 64生成 |
DEVISE_PEPPER | Devise认证密钥,可通过openssl rand -hex 64生成 |
COMMITTEE | 网站标题配置 |
VIRTUAL_HOST | 虚拟主机名(使用nginx-proxy时需要) |
LETSENCRYPT_HOST | Let's Encrypt证书域名(使用letsencrypt时需要) |
LETSENCRYPT_EMAIL | Let's Encrypt联系人***(使用letsencrypt时需要) |
若需实现HTTPS和多应用代理,可使用jwilder/nginx-proxy和jrcs/letsencrypt-nginx-proxy-companion:
1. 准备nginx-proxy环境
bashsudo mkdir /web/nginx-proxy sudo chown $USER /web/nginx-proxy curl https://raw.githubusercontent.com/jwilder/nginx-proxy/master/nginx.tmpl > /web/nginx-proxy/nginx.tmpl # 应用补丁以避免Let's Encrypt验证文件重定向 wget -Onginx.tmpl.patch https://gist.githubusercontent.com/jlm/f415ce4c99880dead9342b78dfefef53/raw/747aacbdafee1fe1fe0d239314d6e49848103c28/nginx.tmpl.patch patch /web/nginx-proxy/nginx.tmpl < nginx.tmpl.patch sudo docker network create nginx-proxy
2. 启动nginx-proxy和letsencrypt容器
bashsudo docker run -d -p 80:80 -p 443:443 --name nginx-proxy --net nginx-proxy --restart=always \ -v /web/nginx-proxy:/etc/nginx/certs:ro \ -v /etc/nginx/vhost.d \ -v /usr/share/nginx/html \ -v /var/run/docker.sock:/tmp/docker.sock:ro \ --label com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy jwilder/nginx-proxy sudo docker run -d --name nginx-letsencrypt --net nginx-proxy --restart=always \ -v /web/nginx-proxy:/etc/nginx/certs:rw \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ --volumes-from nginx-proxy jrcs/letsencrypt-nginx-proxy-companion
3. 重新启动应用
确保deploy-docker-compose.yml中配置了VIRTUAL_HOST、LETSENCRYPT_HOST和LETSENCRYPT_EMAIL,然后重启应用:
bashdocker-compose -f deploy-docker-compose.yml up -d
导入Excel文件前需进行预处理,以避免导入错误:
文件->信息->检查工作簿->文档属性和个人信息移除非法字符首次使用需手动配置管理员权限:
bashdocker-compose -f deploy-docker-compose.yml exec web rails console
rubyu = User.where(email: "user@example.com").first u.admin = true u.save
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务