monica

Monica Docker 镜像

Monica是一款开源的个人关系管理系统,用于组织与亲友的互动。

下载次数: 0状态:社区镜像维护者:s390x仓库类型:镜像最近更新:12 天前
下载命令
点击查看

** 说明 **:这是https://hub.docker.com/_/monica的`s390x`架构专用仓库——更多信息,请参见官方镜像文档中的“https://github.com/docker-library/official-images#architectures-other-than-amd64”和官方镜像FAQ中的“https://github.com/docker-library/faq#an-images-source-changed-in-git-now-what”。

快速参考

-** 维护者 **:
https://github.com/monicahq/docker

-** 获取帮助 **:
https://dockr.ly/comm-slack、Server Fault、https://unix.stackexchange.com/help/on-topic或https://stackoverflow.com/help/on-topic

支持的标签及对应的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

快速参考(续)

-** 提交issues的地址 **:
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/、https://hub.docker.com/r/arm32v5/monica/、https://hub.docker.com/r/arm32v6/monica/、https://hub.docker.com/r/arm32v7/monica/、https://hub.docker.com/r/arm64v8/monica/、https://hub.docker.com/r/i386/monica/、https://hub.docker.com/r/ppc64le/monica/、https://hub.docker.com/r/riscv64/monica/、https://hub.docker.com/r/s390x/monica/

-** 已发布镜像制品详情 **:
https://github.com/docker-library/repo-info/blob/master/repos/monica(https://github.com/docker-library/repo-info/commits/master/repos/monica)
(镜像元数据、传输大小等)

-** 镜像更新 **:
https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fmonica
https://github.com/docker-library/official-images/blob/master/library/monica(https://github.com/docker-library/official-images/commits/master/library/monica)

-** 本描述的来源 **:
https://github.com/docker-library/docs/tree/master/monica(https://github.com/docker-library/docs/commits/master/monica)

什么是Monica?

Monica是一款优秀的开源个人关系管理系统,用于组织与亲友的互动。

如何使用本镜像

您可以选择两种版本的镜像:

apache标签包含完整的Monica安装,带有Apache Web服务器。此标签也指向默认的latest标签。

fpm标签包含用于提供网页的FastCGI进程。此镜像应与作为代理的Web服务器(如Apache或Nginx)配合使用。

使用apache镜像

此镜像包含暴露80端口的Web服务器。运行容器:

console
docker run --name some-monica -d -p 8080:80 docker.xuanyuan.run/s390x/monica

使用fpm镜像

此镜像提供暴露9000端口的FastCGI服务器。您可能需要额外的Web服务器来代理请求到容器的9000端口(fpm端口)。运行容器:

console
docker run --name some-monica -d -p 9000:9000 docker.xuanyuan.run/s390x/monica:fpm

使用外部数据库

您需要设置外部数据库。Monica目前支持MySQL/MariaDB数据库。您也可以链接数据库容器,例如--link my-mysql:db,然后在设置时使用db作为数据库主机。更多信息见Docker Compose部分。

持久化数据存储

为持久化数据,您可能需要为数据库创建卷,对于Monica,需保存/var/www/html/storage目录。

使用命名卷运行容器:

console
docker run -d \
        -v monica_data:/var/www/html/storage \
        docker.xuanyuan.run/s390x/monica

在容器内运行命令

与所有Laravel应用一样,php artisan命令对Monica非常有用。要在容器内运行命令:

console
docker exec CONTAINER_ID php artisan COMMAND

对于Docker Compose:

console
docker compose exec monica php artisan COMMAND

其中monica是compose.yaml文件中的服务名称。

使用环境变量配置

Monica镜像将使用环境变量设置应用。常见变量设置请参见https://github.com/monicahq/monica/blob/4.x/.env.example。

使用Docker Compose运行镜像

Docker Compose的示例配置见https://github.com/monicahq/docker/blob/main/.examples。


Apache版本

此版本使用apache镜像并添加MySQL容器。卷用于持久化数据。此设置不提供SSL加密,旨在运行于代理之后。

运行前确保为APP_KEY变量传入值。

  1. 创建compose.yaml文件

    yaml
    services:
      app:
        image: docker.xuanyuan.run/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: docker.xuanyuan.run/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
    
  2. 运行前设置APP_KEY变量值。应为32字符随机字符串。例如,可复制echo -n 'base64:'; openssl rand -base64 32的输出。

  3. 运行

    console
    docker compose up -d
    

    等待所有迁移完成,然后从主机系统访问http://localhost:8080/。确认正常后,添加首个用户账户。

  4. 运行以下命令一次:

    console
    docker compose exec app php artisan setup:production
    

FPM版本

使用FPM镜像时,需额外Web服务器容器代理HTTP请求。本示例使用Nginx作为基础容器。

  1. 下载Nginx的nginx.conf和Dockerfile。示例见https://github.com/monicahq/docker/blob/main/.examples/full/web/

    sh
    mkdir 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。

  2. 创建compose.yaml文件

    yaml
    services:
      app:
        image: docker.xuanyuan.run/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: docker.xuanyuan.run/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
    
  3. 运行前设置APP_KEY变量值。应为32字符随机字符串。例如,可复制echo -n 'base64:'; openssl rand -base64 32的输出。

  4. 运行

    console
    docker compose up -d
    

    等待所有迁移完成,然后从主机系统访问http://localhost:8080/。确认正常后,添加首个用户账户。

  5. 运行以下命令一次:

    console
    docker compose exec app php artisan setup:production
    

从互联网访问Monica

要将Monica实例暴露到互联网,需设置环境变量APP_ENV=production。此时https模式为必填。

使用主机上的代理Web服务器

暴露Monica实例的一种方式是使用主机上具有SSL功能的代理Web服务器,通过反向代理实现。

使用代理Web服务器容器

Docker Compose的示例配置见https://github.com/monicahq/docker/blob/main/.examples,展示如何配置带SSL功能的代理Web服务器。

镜像变体

s390x/monica镜像有多种变体,适用于不同场景。

s390x/monica:<version>

这是默认镜像。若不确定需求,建议使用此版本。设计用于临时容器(挂载源代码并启动容器运行应用)或作为构建其他镜像的基础。

s390x/monica:<version>-alpine

此镜像基于流行的https://alpinelinux.org,来自https://hub.docker.com/_/alpine。Alpine Linux比大多数发行版基础镜像小得多(约5MB),因此生成的镜像更精简。

当最终镜像大小是首要考虑因素时,此变体非常有用。需注意它使用https://musl.libc.org而非https://www.etalabs.net/compare_libcs.html,因此软件可能因libc需求/假设深度而出现问题。更多讨论见此Hacker News评论线程。

为最小化镜像大小,Alpine-based镜像通常不包含额外相关工具(如git或bash)。以此镜像为基础,可在自己的Dockerfile中添加所需工具(若不熟悉,见https://hub.docker.com/_/alpine/的安装包示例)。

许可

查看此镜像中软件的https://github.com/monicahq/monica/blob/main/LICENSE.md。

与所有Docker镜像一样,这些镜像可能包含其他许可软件(如基础发行版的Bash等,以及主要软件的直接或间接依赖)。

自动检测到的其他许可信息可能位于https://github.com/docker-library/repo-info/tree/master/repos/monica。

对于任何预构建镜像的使用,用户有责任确保镜像的使用符合其中所有软件的相关许可。

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 monica 镜像标签

docker pull docker.xuanyuan.run/s390x/monica:<标签>

DockerHub 原生拉取命令

docker pull s390x/monica:<标签>
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持专业版保障服务可用付费会员免广告