
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Mes-Démarches.gov.pf是一个基于法国***"démarches-simplifiees.fr"项目的热带化版本,旨在满足法属波利尼西亚对行政手续100%数字化的迫切需求。该镜像是一个完整的Web应用解决方案,提供行政手续在线处理功能,帮助机构实现数字化转型。
核心服务
应用栈
docker-compose配置示例
yamlversion: '3.8' services: web: image: mes-demarches.gov.pf:latest restart: always ports: - "3000:3000" environment: - RAILS_ENV=production - DATABASE_URL=postgres://md:md@db:5432/mes_demarches - REDIS_URL=redis://redis:6379/0 - SECRET_KEY_BASE=your_secret_key_base - SMTP_HOST=smtp.example.com - SMTP_PORT=587 - SMTP_USERNAME=your_smtp_username - SMTP_PASSWORD=your_smtp_password depends_on: - db - redis - sidekiq volumes: - app_data:/app/public - app_logs:/app/log db: image: postgres:14 restart: always environment: - POSTGRES_USER=md - POSTGRES_PASSWORD=md - POSTGRES_DB=mes_demarches volumes: - postgres_data:/var/lib/postgresql/data redis: image: redis:alpine restart: always volumes: - redis_data:/data sidekiq: image: mes-demarches.gov.pf:latest restart: always command: bundle exec sidekiq environment: - RAILS_ENV=production - DATABASE_URL=postgres://md:md@db:5432/mes_demarches - REDIS_URL=redis://redis:6379/0 - SECRET_KEY_BASE=your_secret_key_base depends_on: - db - redis volumes: postgres_data: redis_data: app_data: app_logs:
docker run命令示例
bash# 启动数据库 docker run -d \ --name mes-demarches-db \ -e POSTGRES_USER=md \ -e POSTGRES_PASSWORD=md \ -e POSTGRES_DB=mes_demarches \ -v postgres_data:/var/lib/postgresql/data \ postgres:14 # 启动Redis docker run -d \ --name mes-demarches-redis \ -v redis_data:/data \ redis:alpine # 启动应用 docker run -d \ --name mes-demarches-app \ -p 3000:3000 \ -e RAILS_ENV=production \ -e DATABASE_URL=postgres://md:md@mes-demarches-db:5432/mes_demarches \ -e REDIS_URL=redis://mes-demarches-redis:6379/0 \ -e SECRET_KEY_BASE=your_secret_key_base \ --link mes-demarches-db:db \ --link mes-demarches-redis:redis \ mes-demarches.gov.pf:latest # 启动Sidekiq worker docker run -d \ --name mes-demarches-sidekiq \ -e RAILS_ENV=production \ -e DATABASE_URL=postgres://md:md@mes-demarches-db:5432/mes_demarches \ -e REDIS_URL=redis://mes-demarches-redis:6379/0 \ -e SECRET_KEY_BASE=your_secret_key_base \ --link mes-demarches-db:db \ --link mes-demarches-redis:redis \ mes-demarches.gov.pf:latest \ bundle exec sidekiq
| 环境变量 | 描述 | 默认值 |
|---|---|---|
| RAILS_ENV | 运行环境 | development |
| DATABASE_URL | PostgreSQL数据库连接URL | postgres://md:md@localhost:5432/mes_demarches |
| REDIS_URL | Redis连接URL | redis://localhost:6379/0 |
| SECRET_KEY_BASE | Rails加密密钥 | 无,必须手动设置 |
| SMTP_HOST | SMTP服务器地址 | 无 |
| SMTP_PORT | SMTP服务器端口 | 587 |
| SMTP_USERNAME | SMTP认证用户名 | 无 |
| SMTP_PASSWORD | SMTP认证密码 | 无 |
| PROMETHEUS_EXPORTER_ENABLED | 是否启用Prometheus指标导出 | false |
| UPDATE_WEBDRIVER | 是否自动更新WebDriver | false |
| NO_HEADLESS | 是否禁用无头模式运行浏览器 | false |
| JS_LOG | JavaScript日志级别 | 无 |
| MAKE_IT_SLOW | 是否增加端到端测试延迟 | false |
为防止***图像利用,需配置ImageMagick安全策略。在生产环境中,建议添加以下策略:
xml<policymap> <policy domain="coder" rights="none" pattern="*"/> <policy domain="coder" rights="read | write" pattern="{JPG,JPEG,PNG,JSON}"/> <policy domain="module" rights="none" pattern="{MSL,MVG,PS,SVG,URL,XPS}"/> </policymap>
首次使用需要创建数据库用户和初始化数据库:
bash# 进入数据库容器 docker exec -it mes-demarches-db psql -U postgres # 在PostgreSQL终端执行 CREATE USER md WITH PASSWORD 'md' SUPERUSER; CREATE USER md_test WITH PASSWORD 'md_test' SUPERUSER; \q # 初始化数据库结构和种子数据 docker exec -it mes-demarches-app bin/setup
启动应用服务
bashdocker-compose up -d
查看应用日志
bashdocker-compose logs -f web
执行数据库迁移
bashdocker exec -it mes-demarches-app bundle exec rails db:migrate
创建超级管理员账户
bashdocker exec -it mes-demarches-app bundle exec rake superadmin:create
执行定时任务
bashdocker exec -it mes-demarches-app bundle exec rails jobs:schedule
更新应用
bashdocker-compose pull docker-compose down docker-compose up -d
查看本地发送的邮件
访问 http://localhost:3000/letter_opener 查看应用发送的邮件(仅开发环境)。
执行测试
bash# 运行所有测试 docker exec -it mes-demarches-app bin/rspec # 运行特定测试文件 docker exec -it mes-demarches-app bin/rspec spec/path/to/file_spec.rb # 运行带浏览器界面的系统测试 docker exec -it mes-demarches-app NO_HEADLESS=1 bin/rspec spec/system
Ubuntu系统依赖
bashsudo apt-get install libcurl3 libcurl3-gnutls libcurl4-openssl-dev libcurl4-gnutls-dev zlib1g-dev postgresql imagemagick gsfonts redis-server
初始化开发环境
bash# 克隆代码仓库 git clone https://github.com/your-org/mes-demarches.git cd mes-demarches # 初始化环境 bin/setup # 启动开发服务器 bin/dev
应用将运行在 http://localhost:3000,默认测试用户为 test@exemple.fr,密码为 this is a very complicated password !。
bash# 运行所有代码检查工具 docker exec -it mes-demarches-app bin/rake lint # 检查翻译状态 docker exec -it mes-demarches-app bundle exec i18n-tasks health
bin/rspecbin/rspec spec/file_path/file_name_spec.rbbin/rspec spec/file_path/file_name_spec.rb:line_numberbin/rspec --only-failuresJS_LOG=debug,log,error bin/rspec spec/systemMAKE_IT_SLOW=1 bin/rspec spec/system应用集成了多种性能监控工具:
PROMETHEUS_EXPORTER_ENABLED=true 启用Mes-Démarches基于AGPL开源许可证,是démarches-simplifiees.fr项目的衍生作品。Lightgallery组件需要相应的许可授权,开源项目使用可豁免许可费用。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务