群晖通过 Docker 安装 Firefox

1. 获取 firefox 镜像

在注册表搜索 jlesage/firefox,并且下载

2. 创建容器

运行映像 jlesage/firefox,开始创建容器

3. 配置容器

启用自动重新启动,重点配置存储空间和环境变量,其他默认。

创建文件夹,及子文件夹。挂载路径如下:

/config

/config/downloads

/usr/share/fonts/other

环境变量配置删除 INSTALL_PACKAGES、PACKAGES_MIRROR 和 FF_CUSTOM_ARGS。

bash 复制代码
-e SUP_GROUP_IDS="0" \
-e INSTALL_PACKAGES="" \
-e PACKAGES_MIRROR="" \
-e VNC_PASSWORD="MySecurePassword123" \
-e WEB_AUTHENTICATION_DEFAULT_USERNAME="admin" \
-e WEB_AUTHENTICATION_DEFAULT_PASSWORD="MyWebPassword456" \
-e FF_OPEN_URL="https://www.google.com" \
-e FF_CUSTOM_ARGS=""

环境变量的说明以及如何为它们提供值的建议:

1.) SUP_GROUP_IDS

  • 说明:指定用户组 ID,通常用于设置容器中运行的用户权限。
  • 值的建议 :可以使用 0(表示 root 用户)或者群晖中用户的组 ID。你可以通过 SSH 登录到群晖并运行 id 命令来查找当前用户的组 ID。

2.) INSTALL_PACKAGES

  • 说明:用于指定要在容器中安装的额外软件包。
  • 值的建议:可以是一个用空格分隔的软件包名称字符串。如果不需要额外软件包,可以将其留空。

3.) PACKAGES_MIRROR

  • 说明:用于指定软件包的镜像源。
  • 值的建议:可以使用默认的镜像源,或者选择一个你信任的镜像源。如果你不确定,可以留空,通常默认源是足够的。

4.) VNC_PASSWORD

  • 说明:用于设置 VNC 连接的密码,以保护远程访问。
  • 值的建议 :设置一个强密码,例如 MySecurePassword123。确保记住这个密码,因为你需要用它来连接 VNC。

5.) WEB_AUTHENTICATION_DEFAULT_USERNAME

  • 说明:用于设置 Web 界面的默认用户名。
  • 值的建议 :可以设置为你想要的用户名,例如 adminuser

6.) WEB_AUTHENTICATION_DEFAULT_PASSWORD

  • 说明:用于设置 Web 界面的默认密码。
  • 值的建议 :设置一个强密码,例如 MyWebPassword456。确保这个密码与上面的用户名匹配。

7.) FF_OPEN_URL

  • 说明:用于指定 Firefox 启动时打开的 URL。
  • 值的建议 :可以是任何有效的 URL,如 https://www.google.com 或者留空,表示启动时不打开任何网页。

8.) FF_CUSTOM_ARGS

  • 说明:用于传递给 Firefox 的自定义启动参数。
  • 值的建议 :可以留空,或者如果你有特定的启动参数需求,可以在这里指定。例如,如果你希望 Firefox 在无头模式下运行,可以使用 -headless

4. 字体设置

因为默认的中文字体是方框,所以得下载字体配置。

1.)安装中文字体

‌下载并安装中文字体,例如阿里巴巴普惠字体。可以从阿里巴巴普惠字体官网下载字体文件,如 AlibabaPuHuiTi-2-55-Regular.ttf,然后将字体文件复制到群晖服务器的 /docker/Firefox/fonts/目录下,并更新字体缓存。

下载地址:阿里巴巴字体素材平台 --- 更安心、更实惠、更专业

2.)容器内部修改字体

检查 Docker 服务状态:

bash 复制代码
sudo systemctl status docker

查看当前正在运行的 Docker 容器:

bash 复制代码
docker ps -a

进入正在运行的容器:

bash 复制代码
sudo docker run -it --rm <容器ID或名称> /bin/bash

错误:~$ sudo docker exec -it <容器ID或名称> /bin/bash OCI runtime exec failed: exec failed: unable to start container process: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown

容器中没有安装 /bin/bash,这可能是因为该容器使用的是轻量级的操作系统,如 Alpine Linux,通常使用 /bin/sh 作为默认的 shell。

bash 复制代码
sudo docker exec -it <容器ID或名称> /bin/sh

查看特定容器的详细信息:

bash 复制代码
docker inspect <容器ID或名称>

查看字符集:

bash 复制代码
/tmp # locale
/bin/sh: locale: not found

容器内找不到 locale 命令,安装 locales 包:

bash 复制代码
apk update
apk add --no-cache musl-locales musl-locales-lang

查看可用的字体包:

bash 复制代码
apk search font

找到适合的字体包并安装,例如:

bash 复制代码
apk add font-noto

Noto CJK 系列是专门为中、日、韩文字设计的,可以支持这三种语言:

bash 复制代码
apk add font-noto-cjk

更新字体缓存:

bash 复制代码
fc-cache -fv

注意事项:

1.) 访问只有一个小窗口?

在 Docker 容器中运行 Firefox 时,可能会遇到窗口显示不全或功能不完整的问题。这通常是因为 Firefox 运行在无头(headless)模式或没有正确的显示环境。

待补充......

相关推荐
魂尾ac1 小时前
Centos Docker 安装(100%成功)
linux·docker·centos
Johny_Zhao7 小时前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
zwjapple8 小时前
docker-compose一键部署全栈项目。springboot后端,react前端
前端·spring boot·docker
鸭鸭鸭进京赶烤9 小时前
大学专业科普 | 云计算、大数据
大数据·云计算
代码老y10 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
DuelCode11 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
SH11HF13 小时前
小菜狗的云计算之旅,学习了解rsync+sersync实现数据实时同步(详细操作步骤)
学习·云计算
杨浦老苏15 小时前
开源服务运行监控工具Lunalytics
docker·群晖·网站监控
搞笑的秀儿15 小时前
信息新技术
大数据·人工智能·物联网·云计算·区块链
呆萌的代Ma21 小时前
解决Mac上的老版本docker desktop 无法启动/启动后一直转圈/无法登陆账号的问题
macos·docker·eureka