
arm64v8/monica注意:这是monica官方镜像的arm64v8架构构建的“按架构”仓库——更多信息,请参见官方镜像文档中的“非amd64架构?”和官方镜像FAQ中的“Git中的镜像源已更改,该怎么办?”。
维护者:
Monica团队
获取帮助的途径:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile链接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
提交issue的地址:
[***]
支持的架构:(更多信息)
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 arm64v8/monica
此镜像提供一个暴露9000端口的FastCGI服务器。你可能需要一个额外的Web服务器,用于将请求代理到容器的9000端口(fpm端口)。运行此容器的命令如下:
consoledocker run --name some-monica -d -p 9000:9000 arm64v8/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 \ arm64v8/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服务器的示例,请参见示例部分。
arm64v8/monica镜像有多种版本,每种版本设计用于特定用例。
arm64v8/monica:<version>这是默认镜像。如果你不确定自己的需求,可能需要使用此版本。它既可以用作临时容器(挂载源代码并启动容器以启动应用),也可以作为构建其他镜像的基础。
arm64v8/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 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务