群晖通过 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)模式或没有正确的显示环境。

待补充......

相关推荐
test128042 分钟前
局域网 docker pull 使用代理拉取镜像
docker·容器·代理·docker pull·http_proxy
sudo_Ene43 分钟前
Isaac Sim Docker 部署并使用过程记录
笔记·学习·docker·1024程序员节·isaacsim
天幕繁星1 小时前
docker占用磁盘过多问题
docker·容器
26293526742 小时前
Docker常用命令
java·docker·eureka
bala55692 小时前
Docker-在Centos中部署Shell脚本获取镜像并构建容器
linux·阿里云·docker·容器·centos·maven
知数SEO2 小时前
Centos如何卸载docker
linux·docker·centos
水w6 小时前
docker怎么实现资源隔离的?
运维·开发语言·后端·docker·容器
~见贤思齐~6 小时前
记一次真实项目的性能问题诊断、优化(阿里云redis分片带宽限制问题)过程
redis·阿里云·云计算·1024程序员节
dami_king11 小时前
Docker原理|实战
docker
Hadoop_Liang12 小时前
Docker网络
网络·docker·容器