注意:这是friendica镜像的arm32v6架构构建版本的“按架构”仓库——更多信息,请参见镜像文档中的“非amd64架构?”和***镜像FAQ中的“Git中的镜像源已更改,该怎么办?”。
维护者:
nupplaPhil
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile链接2024.12-fpm-alpine, fpm-alpine, stable-fpm-alpine
2025.02-dev-fpm-alpine, dev-fpm-alpine
2025.07-rc-fpm-alpine, rc-fpm-alpine
问题反馈地址:
[***]
支持的架构:(更多信息)
amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、mips64le、ppc64le、riscv64、s390x
镜像 artifact 详情:
repo-info 仓库的 repos/friendica/ 目录(历史记录)
(镜像元数据、传输大小等)
镜像更新:
official-images 仓库的 library/friendica 标签
official-images 仓库的 library/friendica 文件(历史记录)
本描述的来源:
docs 仓库的 friendica/ 目录(历史记录)
Friendica 是一个去中心化通信平台,整合社交沟通功能。我们的平台可连接独立社交项目和企业服务。
!logo
本镜像设计用于微服务环境。有两种类型的镜像可供选择:
apache 标签包含完整的 Friendica 安装,包括 Apache Web 服务器。它易于使用,可快速启动运行。这也是 latest 标签和未指定进一步说明的版本标签的默认类型。
第二种选择是 fpm 容器。它基于 php-fpm 镜像,运行 FastCGI 进程来提供 Friendica 服务。要使用此镜像,必须与能够将 HTTP 请求代理到容器 FastCGI 端口的 Web 服务器结合使用。
至少需要一个 mariadb/mysql 容器与之链接。
apache 镜像包含 Web 服务器并暴露 80 端口。启动容器的命令如下:
console$ docker run -d -p 8080:80 --network some-network arm32v6/friendica
现在可通过主机系统的 http://localhost:8080/ 访问 Friendica 安装向导。
要使用 fpm 镜像,需要额外的 Web 服务器将 HTTP 请求代理到容器的 fpm 端口。fpm 连接暴露 9000 端口。大多数情况下,可能需要使用另一个容器或主机作为代理。如果使用主机,可直接通过 9000 端口访问 Friendica 容器;如果使用其他容器,确保它们添加到同一 Docker 网络(通过 docker run --network <NAME> ... 或 compose.yaml 文件)。在这两种情况下,通常不需要将 fpm 端口映射到主机。
console$ docker run -d arm32v6/friendica:fpm
由于 FastCGI 进程无法提供静态文件(样式表、图片等),Web 服务器需要访问这些文件。可通过 volumes-from 选项实现。更多信息见 Docker Compose 部分。
Friendica 需要后台任务来获取和发送各类消息并维护整个实例。此设置对 Friendica 节点至关重要。有两种方式启用后台任务:
cron 实例,使用 cron.sh 作为启动命令(如 示例)Friendica 设置
FRIENDICA_URL:Friendica 完整 URL,包括协议、域名和子路径(示例:[***]FRIENDICA_TZ:Friendica 服务器的默认时区。FRIENDICA_LANG:Friendica 服务器的默认语言。FRIENDICA_SITENAME:Friendica 服务器的站点名称。FRIENDICA_NO_VALIDATION:若设为 true,将禁用 URL 和电子邮件验证。FRIENDICA_DATA:设置存储提供程序名称(例如 Filesystem 使用文件系统),默认使用数据库后端。FRIENDICA_DATA_DIR:Friendica 服务器的数据目录(默认:/var/www/data)。FRIENDICA_UPGRADE:强制启动 Friendica 更新(即使版本相同)(默认:false)。Friendica 日志
FRIENDICA_DEBUGGING:若设为 true,启用 Friendica 日志记录。FRIENDICA_LOGFILE(可选):日志文件路径(默认:/var/www/friendica.log)。FRIENDICA_LOGLEVEL(可选):日志级别(默认:notice)。FRIENDICA_LOGGER(可选):日志类型 - stream、syslog、monolog(默认:stream)。FRIENDICA_SYSLOG_FLAGS(可选):使用 syslog 时,设置相应标志(默认:LOG_PID | LOG_ODELAY | LOG_CONS | LOG_PERROR)。FRIENDICA_SYSLOG_FACTORY(可选):使用 syslog 时,设置相应工厂(默认:LOG_USER)。数据库(安装时必填)
MYSQL_USER:使用 mysql/mariadb 的数据库用户名。MYSQL_PASSWORD:使用 mysql/mariadb 的数据库密码。MYSQL_DATABASE:使用 mysql/mariadb 的数据库名称。MYSQL_HOST:mysql/mariadb 数据库服务器的主机名。MYSQL_PORT:mysql/mariadb 数据库服务器的端口(默认:3306)。锁驱动(Redis)
REDIS_HOST:Redis 实例的主机名(用于锁定)。REDIS_PORT(可选):Redis 实例的端口(用于锁定)。REDIS_PW(可选):Redis 实例的密码(用于锁定)。REDIS_DB(可选):Redis 实例的数据库编号(用于锁定)。PHP 限制
PHP_MEMORY_LIMIT(默认 512M):设置脚本允许分配的最大内存量(字节)。用于防止不良脚本耗尽所有内存,但设置过严可能影响正常运行。PHP_UPLOAD_LIMIT(默认 512M):设置大文件的上传限制(post_max_size 和 upload_max_filesize)。注意可能需要根据客户端、Web 服务器或操作系统更改其他限制。由于 Friendica 将管理员账户与特定邮件地址关联,必须为 MAILNAME 设置有效的地址。
二进制文件 ssmtp 用于 Friendica 的 mail() 支持。
必须正确设置 --hostname/-h 参数,以使用 mail() 命令的正确域名。
必须为 SMTP 环境变量设置有效的 SMTP-MTA 才能启用 Friendica 中的邮件支持。例如,有效的 SMTP-MTA 可以是 mx.example.org。
以下是 SMTP 配置可能的环境变量:
SMTP:SMTP 邮件网关地址。(必填)SMTP_PORT:SMTP 邮件网关端口。(默认:587)SMTP_DOMAIN:发件人域名。(必填 - 例如 friendica.local)SMTP_FROM:地址的发件人用户部分。(默认:no-reply - 例如 ***)SMTP_TLS:使用 TLS 连接 SMTP 邮件网关。(默认:空)SMTP_STARTTLS:使用 STARTTLS 连接 SMTP 邮件网关。(默认:On)SMTP_AUTH:SMTP 邮件网关的认证模式。(默认:On)SMTP_AUTH_USER:SMTP 邮件网关的用户名。(默认:空)SMTP_AUTH_PASS:SMTP 邮件网关的密码。(默认:空)STARTTLS 补充说明
tls_starttls 设置为 On 或 Off,不能未设置。因为若未设置,starttls 将默认启用(可能需要额外配置,如单独的端口)。
必须将 Friendica 容器添加到与运行中的数据库容器相同的网络,例如 --network some-network,然后在设置时使用 mysql 作为数据库主机。
Friendica 安装和数据库之外的所有数据(文件上传等)存储在未命名 Docker 卷 /var/www/html 中。Docker 守护程序会将数据存储在 Docker 目录 /var/lib/docker/volumes/... 中。这意味着即使容器崩溃、停止或删除,数据也会保留。为便于升级和备份,建议使用命名 Docker 卷或挂载主机目录。需要为数据库容器和 Friendica 分别设置卷:
Friendica:
/var/www/html/:Friendica 所有数据所在目录console$ docker run -d \ -v friendica-vol-1:/var/www/html \ --network some-network arm32v6/friendica
数据库:
/var/lib/mysql:MySQL / MariaDB 数据console$ docker run -d \ -v mysql-vol-1:/var/lib/mysql \ --network some-network mariadb
Friendica 镜像支持通过环境变量自动配置。可在首次运行时预配置安装页面上要求的所有内容。要启用自动安装,必须设置以下环境变量:
FRIENDICA_URL:Friendica 完整 URL,包括协议、域名和子路径(示例:[***]FRIENDICA_ADMIN_MAIL:管理员的电子邮件地址。MYSQL_USER:使用 mysql/mariadb 的数据库用户名。MYSQL_PASSWORD:使用 mysql/mariadb 的数据库密码。MYSQL_DATABASE:使用 mysql/mariadb 的数据库名称。MYSQL_HOST:mysql/mariadb 数据库服务器的主机名。作为通过环境变量传递敏感信息的替代方法,可在前面列出的环境变量后附加 _FILE,使初始化脚本从容器中的文件加载这些变量的值。特别是,这可用于从存储在 /run/secrets/<secret_name> 文件中的 Docker Secrets 加载密码。例如:
yamlservices: db: image: mariadb restart: always volumes: - db:/var/lib/mysql environment: - MYSQL_DATABASE_FILE=/run/secrets/mysql_database - MYSQL_USER_FILE=/run/secrets/mysql_user - MYSQL_PASSWORD_FILE=/run/secrets/mysql_password secrets: - mysql_database - mysql_password - mysql_user app: image: friendica restart: always volumes: - friendica:/var/www/html ports: - "8080:80" environment: - MYSQL_HOST=db - MYSQL_DATABASE_FILE=/run/secrets/mysql_database - MYSQL_USER_FILE=/run/secrets/mysql_user - MYSQL_PASSWORD_FILE=/run/secrets/mysql_password - FRIENDICA_ADMIN_MAIL_FILE=/run/secrets/friendica_admin_mail depends_on: - db secrets: - friendica_admin_mail - mysql_database - mysql_password - mysql_user volumes: db: friendica: secrets: friendica_admin_mail: file: ./friendica_admin_mail.txt # 将管理员***放入此文件 mysql_database: file: ./mysql_database.txt # 将 MySQL 数据库名放入此文件 mysql_password: file: ./mysql_password.txt # 将 MySQL 密码放入此文件 mysql_user: file: ./mysql_user.txt # 将 MySQL 用户名放入此文件
目前仅支持 FRIENDICA_ADMIN_MAIL、MYSQL_DATABASE、MYSQL_PASSWORD、MYSQL_USER。
需从仓库拉取最新镜像(docker pull arm32v6/friendica)。稳定分支在每次启动时会检查,若未找到安装或使用新镜像,将自动更新。
获取功能齐全的完整设置的最简单方法是使用 compose.yaml 文件。系统设置有多种可能性,以下仅提供部分示例。
首先确保选择了正确的基础镜像(fpm 或 apache)并添加了所需功能(见下文)。在任何情况下,都需要添加数据库容器和 Docker 卷以方便访问持久化数据。若要从互联网访问服务器,必须添加 HTTPS 加密!详见下文。
此版本使用 apache 镜像并添加 mariaDB 容器。卷用于保持数据持久化。此设置不提供 SSL 加密,适用于运行在代理之后。
运行前确保设置 MYSQL_PASSWORD 变量。
yamlservices: db: image: mariadb restart: always volumes:

来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429