i386/monica注意: 这是 monica 官方镜像 的 i386 架构构建版本的“按架构”仓库——更多信息,请参见官方镜像文档中的“非 amd64 架构?”和官方镜像 FAQ 中的“Git 中镜像源已更改,该怎么办?”。
维护者:
Monica 团队
获取帮助:
Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
4.1.2-apache, 4.1-apache, 4-apache, apache, 4.1.2, 4.1, 4, latest
4.1.2-fpm-alpine, 4.1-fpm-alpine, 4-fpm-alpine, fpm-alpine
4.1.2-fpm, 4.1-fpm, 4-fpm, fpm
5.0.0-beta.5-apache, 5.0.0-beta-apache, 5.0-apache
5.0.0-beta.5-fpm-alpine, 5.0.0-beta-fpm-alpine, 5.0-fpm-alpine
5.0.0-beta.5-fpm, 5.0.0-beta-fpm, 5.0-fpm
问题反馈地址:
[***]
支持的架构: (更多信息)
amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、ppc64le、riscv64、s390x
镜像制品详情:
repo-info 仓库的 repos/monica/ 目录(历史记录)
(镜像元数据、传输大小等)
镜像更新:
official-images 仓库的 library/monica 标签
official-images 仓库的 library/monica 文件(历史记录)
本文档来源:
docs 仓库的 monica/ 目录(历史记录)
Monica 是一款优秀的开源个人关系管理系统,用于组织与亲友的互动。
!logo
您可以选择两种版本的镜像:
apache 标签包含完整的 Monica 安装,带有 Apache Web 服务器。此标签也指向默认的 latest 标签。
fpm 标签包含一个 FastCGI 进程,用于提供网页服务。此镜像应与作为代理的 Web 服务器(如 Apache 或 Nginx)配合使用。
此镜像包含一个暴露 80 端口的 Web 服务器。运行容器的命令如下:
consoledocker run --name some-monica -d -p 8080:80 i386/monica
此镜像提供一个暴露 9000 端口的 FastCGI 服务器。您可能需要额外的 Web 服务器来将请求代理到容器的 9000 端口(fpm 端口)。运行容器的命令如下:
consoledocker run --name some-monica -d -p 9000:9000 i386/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 \ i386/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 镜像将使用环境变量来配置应用。有关常用变量的设置,请参见 Monica 文档。
有关 Docker Compose 的示例配置,请参见 示例部分。
此版本使用 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 镜像时,需要另一个带有 Web 服务器的容器来代理 HTTP 请求。本示例使用 Nginx 作为基本容器。
下载 nginx 的 nginx.conf 和 Dockerfile 文件。示例可在 示例部分 找到。
shmkdir web curl -sSL [***] -o web/nginx.conf curl -sSL [***] -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 功能的代理 Web 服务器,通过反向代理实现。
有关带有 SSL 功能的代理 Web 服务器的 Docker Compose 示例,请参见 示例部分。
i386/monica 镜像有多种版本,适用于不同的使用场景。
i386/monica:<version>这是默认镜像。如果您不确定自己的需求,可能需要使用此版本。它设计为既可作为临时容器(挂载源代码并启动容器以运行应用),也可作为构建其他镜像的基础。
i386/monica:<version>-alpine此镜像基于流行的 Alpine Linux 项目,可在 alpine 官方镜像 中找到。Alpine Linux 比大多数发行版基础镜像小得多(约 5MB),因此通常生成更精简的镜像。
当最终镜像大小是首要考虑因素时,此变体非常有用。需要注意的是,它使用 musl libc 而非 glibc 等,因此软件可能会因对 libc 的依赖/假设而遇到问题。有关可能出现的问题及使用 Alpine 基础镜像的优缺点讨论,请参见 此 Hacker News 评论线程。
为最小化镜像大小,Alpine 基础镜像通常不包含额外的相关工具(如 git 或 bash)。使用此镜像作为基础时,请在您自己的 Dockerfile 中添加所需工具(如果不熟悉如何安装包,请参见 alpine 镜像描述 中的示例)。
查看此镜像中包含的软件的 许可证信息。
与所有 Docker 镜像一样,这些镜像可能还包含其他软件,可能受其他许可证约束(如基础发行版中的 Bash 等,以及主要软件的任何直接或间接依赖项)。
一些能够自动检测到的额外许可证信息可能位于 repo-info 仓库的 monica/ 目录 中。
对于任何预构建镜像的使用,镜像用户有责任确保对该镜像的任何使用符合其中包含的所有软件的相关许可证。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务