如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
** 注意 **:这是 https://hub.docker.com/_/monica 的 amd64 架构构建的“按架构”仓库——更多信息,请参见官方镜像文档中的“https://github.com/docker-library/official-images#architectures-other-than-amd64%E2%80%9D%E5%92%8C%E5%AE%98%E6%96%B9%E9%95%9C%E5%83%8F%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E4%B8%AD%E7%9A%84%E2%80%9Chttps://github.com/docker-library/faq#an-images-source-changed-in-git-now-what%E2%80%9D%E3%80%82
-** 维护者 **:
https://github.com/monicahq/docker
-** 获取帮助 **:
Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile 链接https://github.com/monicahq/docker/blob/7ffc74385e243e2dac4d7013a3240c0ae1229f05/4/apache/Dockerfile
https://github.com/monicahq/docker/blob/7ffc74385e243e2dac4d7013a3240c0ae1229f05/4/fpm-alpine/Dockerfile
https://github.com/monicahq/docker/blob/7ffc74385e243e2dac4d7013a3240c0ae1229f05/4/fpm/Dockerfile
https://github.com/monicahq/docker/blob/7ffc74385e243e2dac4d7013a3240c0ae1229f05/5/apache/Dockerfile
https://github.com/monicahq/docker/blob/7ffc74385e243e2dac4d7013a3240c0ae1229f05/5/fpm-alpine/Dockerfile
https://github.com/monicahq/docker/blob/7ffc74385e243e2dac4d7013a3240c0ae1229f05/5/fpm/Dockerfile
-** 提交问题 **:
https://github.com/monicahq/docker/issues?q=
-** 支持的架构 **:(https://github.com/docker-library/official-images#architectures-other-than-amd64)
https://hub.docker.com/r/amd64/monica/%E3%80%81https://hub.docker.com/r/arm32v5/monica/%E3%80%81https://hub.docker.com/r/arm32v6/monica/%E3%80%81https://hub.docker.com/r/arm32v7/monica/%E3%80%81https://hub.docker.com/r/arm64v8/monica/%E3%80%81https://hub.docker.com/r/i386/monica/%E3%80%81https://hub.docker.com/r/ppc64le/monica/%E3%80%81https://hub.docker.com/r/riscv64/monica/%E3%80%81https://hub.docker.com/r/s390x/monica/
-** 镜像 artifact 详情 **:
https://github.com/docker-library/repo-info/blob/master/repos/monica%EF%BC%88https://github.com/docker-library/repo-info/commits/master/repos/monica%EF%BC%89
(镜像元数据、传输大小等)
-** 镜像更新 **:
https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fmonica
https://github.com/docker-library/official-images/blob/master/library/monica%EF%BC%88https://github.com/docker-library/official-images/commits/master/library/monica%EF%BC%89
-** 本描述的来源 **:
https://github.com/docker-library/docs/tree/master/monica%EF%BC%88https://github.com/docker-library/docs/commits/master/monica%EF%BC%89
Monica 是一款优秀的开源个人关系管理系统,用于组织与亲友的互动。
!https://raw.githubusercontent.com/docker-library/docs/b962028212dbd77c9531dbcf8d5a81db79d4a735/monica/logo.svg?sanitize=true
您可以选择两种版本的镜像:
apache 标签包含完整的 Monica 安装,带有 Apache 网络服务器。此标签也指向默认的 latest 标签。
fpm 标签包含一个 FastCGI 进程,用于提供网页服务。此镜像应与用作代理的网络服务器(如 Apache 或 Nginx)配合使用。
此镜像包含一个暴露 80 端口的网络服务器。运行容器:
consoledocker run --name some-monica -d -p 8080:80 amd64/monica
此镜像提供一个暴露 9000 端口的 FastCGI 服务器。您可能需要一个额外的网络服务器作为代理,将请求转发到容器的 9000 端口。运行容器:
consoledocker run --name some-monica -d -p 9000:9000 amd64/monica:fpm
您需要设置外部数据库。Monica 当前支持 MySQL/MariaDB 数据库。您也可以链接数据库容器,例如 --link my-mysql:db,然后在设置时使用 db 作为数据库主机。更多信息在 Docker Compose 部分。
为了持久化数据,您可能需要为数据库创建卷,对于 Monica,需要保存 /var/www/html/storage 目录。
使用命名卷运行容器:
consoledocker run -d \ -v monica_data:/var/www/html/storage \ amd64/monica
与所有 Laravel 应用一样,php artisan 命令对 Monica 非常有用。要在容器内运行命令:
consoledocker exec CONTAINER_ID php artisan COMMAND
对于 Docker Compose:
consoledocker compose exec monica php artisan COMMAND
其中 monica 是您 compose.yaml 文件中的服务名称。
Monica 镜像将使用环境变量设置应用。常见变量设置请参见 https://github.com/monicahq/monica/blob/4.x/.env.example%E3%80%82
有关 Docker Compose 的示例,请参见 https://github.com/monicahq/docker/blob/main/.examples%E3%80%82
此版本使用 apache 镜像并添加一个 MySQL 容器。卷用于持久化数据。此设置不提供 SSL 加密,旨在运行在代理之后。
运行前确保为 APP_KEY 变量传入值。
创建 compose.yaml 文件
yamlservices: app: image: monica depends_on: - db ports: - 8080:80 environment: - APP_KEY= # 使用 `echo -n 'base64:'; openssl rand -base64 32` 生成 - DB_HOST=db - DB_USERNAME=monica - DB_PASSWORD=secret volumes: - data:/var/www/html/storage restart: always db: image: mariadb:11 environment: - MYSQL_RANDOM_ROOT_PASSWORD=true - MYSQL_DATABASE=monica - MYSQL_USER=monica - MYSQL_PASSWORD=secret volumes: - mysql:/var/lib/mysql restart: always volumes: data: name: data mysql: name: mysql
运行前为 APP_KEY 变量设置值。应为 32 字符的随机字符串。例如,可复制 echo -n 'base64:'; openssl rand -base64 32 的输出。
运行
consoledocker compose up -d
等待所有迁移完成,然后从主机系统访问 Monica:http://localhost:8080/。确认正常后,添加第一个用户账户。
运行以下命令一次:
consoledocker compose exec app php artisan setup:production
使用 FPM 镜像时,需要另一个容器作为网络服务器代理 HTTP 请求。本示例使用 Nginx 容器。
下载 Nginx 的 nginx.conf 和 Dockerfile 文件。示例可在 https://github.com/monicahq/docker/blob/main/.examples/full/fpm/web/ 找到。
shmkdir web curl -sSL https://raw.githubusercontent.com/monicahq/docker/main/.examples/full/web/nginx.conf -o web/nginx.conf curl -sSL https://raw.githubusercontent.com/monicahq/docker/main/.examples/full/web/Dockerfile -o web/Dockerfile
web 容器镜像应在每次部署前构建:docker compose build。
创建 compose.yaml 文件
yamlservices: app: image: monica:fpm depends_on: - db environment: - APP_KEY= # 使用 `echo -n 'base64:'; openssl rand -base64 32` 生成 - DB_HOST=db - DB_USERNAME=monica - DB_PASSWORD=secret volumes: - data:/var/www/html/storage restart: always web: build: ./web ports: - 8080:80 depends_on: - app volumes: - data:/var/www/html/storage:ro restart: always db: image: mariadb:11 environment: - MYSQL_RANDOM_ROOT_PASSWORD=true - MYSQL_DATABASE=monica - MYSQL_USER=monica - MYSQL_PASSWORD=secret volumes: - mysql:/var/lib/mysql restart: always volumes: data: name: data mysql: name: mysql
运行前为 APP_KEY 变量设置值。应为 32 字符的随机字符串。例如,可复制 echo -n 'base64:'; openssl rand -base64 32 的输出。
运行
consoledocker compose up -d
等待所有迁移完成,然后从主机系统访问 Monica:http://localhost:8080/。确认正常后,添加第一个用户账户。
运行以下命令一次:
consoledocker compose exec app php artisan setup:production
要将 Monica 实例暴露到互联网,需设置环境变量 APP_ENV=production。此时将强制使用 https 模式。
一种暴露 Monica 实例的方法是使用主机上具有 SSL 功能的代理网络服务器,通过反向代理实现。
有关带 SSL 功能的代理网络服务器示例,请参见 https://github.com/monicahq/docker/blob/main/.examples%E3%80%82
amd64/monica 镜像有多种版本,适用于不同用例。
amd64/monica:<version>这是默认镜像。如果不确定需求,建议使用此版本。它既可作为临时容器(挂载源代码并启动容器运行应用),也可作为构建其他镜像的基础。
amd64/monica:<version>-alpine此镜像基于流行的 Alpine Linux 项目,来自 https://hub.docker.com/_/alpine%E3%80%82Alpine Linux 比大多数发行版基础镜像小得多(约 5MB),因此生成的镜像通常更精简。
当最终镜像大小是首要考虑因素时,此变体非常有用。需要注意的是,它使用 musl libc 而非 glibc 及相关库,因此软件可能因 libc 要求/假设而遇到问题。更多讨论参见 此 Hacker News 评论线程。
为最小化镜像大小,Alpine 基础镜像通常不包含额外相关工具(如 git 或 bash)。以此镜像为基础,可在自己的 Dockerfile 中添加所需工具(若不熟悉安装包方法,参见 https://hub.docker.com/_/alpine/ 中的示例)。
查看此镜像中包含的软件的 https://github.com/monicahq/monica/blob/main/LICENSE.md%E3%80%82
与所有 Docker 镜像一样,这些镜像可能还包含其他软件,可能受其他许可证约束(如基础发行版中的 Bash 等,以及主要软件的任何直接或间接依赖)。
可在 https://github.com/docker-library/repo-info/tree/master/repos/monica 中找到一些自动检测到的附加许可证信息。
对于任何预构建镜像的使用,镜像用户有责任确保对本镜像的任何使用符合其中包含的所有软件的相关许可证。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

来自真实用户的反馈,见证轩辕镜像的优质服务