群晖通过 Docker 安装 Firefox

1. 获取 firefox 镜像

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

2. 创建容器

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

3. 配置容器

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

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

/config

/config/downloads

/usr/share/fonts/other

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

-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 服务状态:

sudo systemctl status docker

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

docker ps -a

进入正在运行的容器:

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。

sudo docker exec -it <容器ID或名称> /bin/sh

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

docker inspect <容器ID或名称>

查看字符集:

/tmp # locale
/bin/sh: locale: not found

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

apk update
apk add --no-cache musl-locales musl-locales-lang

查看可用的字体包:

apk search font

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

apk add font-noto

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

apk add font-noto-cjk

更新字体缓存:

fc-cache -fv

注意事项:

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

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

待补充......

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/883120.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】队列和栈相互实现

文章目录 1.用队列实现栈2.用栈实现队列 1.用队列实现栈 这个类使用两个队列来模拟栈的行为&#xff0c;其中一个队列用于主要操作&#xff08;queue1&#xff09;&#xff0c;另一个队列作为辅助&#xff08;queue2&#xff09;。通过这种方式&#xff0c;我们可以确保栈的后…

高效设备管理:中小企业的Spring Boot解决方案

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理中小企业设备管理系统的相关信息成为必然。…

Lucas带你手撕机器学习——SVM支持向量机

#1024程序员节&#xff5c;征文# 支持向量机&#xff08;SVM&#xff09;的详细讲解 什么是SVM&#xff1f; 支持向量机&#xff08;Support Vector Machine&#xff0c;SVM&#xff09;是一种用于分类和回归的监督学习算法。它的主要任务是从给定的数据中找到一个最佳的决策…

MultipartFile文件与传递body并存问题

文章目录 关于MultipartFile文件与传递JsonBody并存问题解决数据流与参数同时传递的问题 关于MultipartFile文件与传递JsonBody并存问题 基于spring框架&#xff0c;如果是上传文件&#xff0c;接口采用MultipartFile接收数据流&#xff0c;如果是body&#xff0c;接口采用Req…

原来“有符号数变成无符号数,并不是-1变成1,-15变成15”!!

不怕大家伙笑话&#xff0c;我以前一直以为在C语言中&#xff0c;有符号变无符号仅仅就是去掉数字前面的符号就行&#xff0c;如今做了一道题&#xff0c;细细研究&#xff0c;才发现&#xff0c;原来不是&#xff01; 如果你也感兴趣&#xff0c;那就学学今天这节吧~ 话不多说…

前端必知必会-JavaScript 简介

文章目录 JavaScript 简介JavaScript 可以更改 HTML 内容JavaScript 可以更改 HTML 属性值JavaScript 可以更改 HTML 样式 (CSS)JavaScript 可以隐藏 HTML 元素JavaScript 可以显示 HTML 元素 总结 JavaScript 简介 本页包含一些 JavaScript 功能的示例。 JavaScript 可以更改…

YOLOv11改进策略【卷积层】| ECCV-2024 小波卷积WTConv 增大感受野,降低参数量计算量,独家创新助力涨点

一、本文介绍 本文记录的是利用小波卷积WTConv模块优化YOLOv11的目标检测网络模型。WTConv的目的是在不出现过参数化的情况下有效地增加卷积的感受野,从而解决了CNN在感受野扩展中的参数膨胀问题。本文将其加入到深度可分离卷积中,有效降低模型参数量和计算量,并二次创新C3…

即时通讯代码优化

在线用户逻辑修复 在进行测试时&#xff0c;发现当前代码有个问题&#xff0c;如果test1在服务器进行连接&#xff0c;本地的test2给test1发消息&#xff0c;虽然test1能收到服务器上的信息&#xff0c;但是本地服务日志中会报teset1不在线&#xff0c;需要对该种情况进行修复…

FastDFS扩容操作

FastDFS扩容操作 3.FastDFS 扩容操作3.1 迁移到全新的FastDFS3.1.1 部署全新的FastDFS3.1.2 Storage连接即将被迁移的Tracker3.1.3 启动Storage节点3.1.4 在老FastDFS服务器上查看同步进程3.1.5 停止storage节点3.1.6 Storage连接全新的的Tracker3.1.7 修改.data_init_flag文件…

百度SEO前10关键词排名波动跟用户行为反馈有很大关系

大家好&#xff0c;我是林汉文&#xff08;谷歌SEO专家&#xff09;&#xff0c;在百度SEO优化中&#xff0c;网站的排名并非一成不变&#xff0c;尤其是前10名的位置&#xff0c;更是动态变化。很多站长可能会发现&#xff0c;有时明明内容质量不错&#xff0c;外链也稳定&…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-20

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-20 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-20目录1. FLARE: Faithful Logic-Aided Reasoning and Exploration摘要研究背景问题与挑战如何解决创新点算法模型实验效果重要数…

多线程进阶——线程池的实现

什么是池化技术 池化技术是一种资源管理策略&#xff0c;它通过重复利用已存在的资源来减少资源的消耗&#xff0c;从而提高系统的性能和效率。在计算机编程中&#xff0c;池化技术通常用于管理线程、连接、数据库连接等资源。 我们会将可能使用的资源预先创建好&#xff0c;…

Ubuntu22.04虚拟机安装

一、安装介质下载&#xff1a; 在官网下载安装镜像&#xff0c;下载地址https://releases.ubuntu.com/22.04/ubuntu-22.04.5-live-server-amd64.iso 二、操作系统安装&#xff1a; step 1:进入ubuntu的安装界面&#xff0c;直接回车安装。 step 2:选择语言&#xff0c;直接回…

liunx线程互斥

临界资源和临界区 临界资源&#xff1a;多线程执行流共享的资源就叫临界资源。 临界区&#xff1a;每个线程中&#xff0c;访问临界区的代码&#xff0c;就叫临界区。 互斥&#xff1a;任何时候&#xff0c;互斥保证只有一个执行流进入临界区&#xff0c;访问临界资源&#…

iframe里放的视频,如何采用纯css适配

步骤1&#xff1a;设置包含iframe的父元素 首先&#xff0c;确保iframe的父容器具有一个适当的宽高比。通过为父容器设置一个相对定位和一定的宽度和高度&#xff0c;你可以控制它的尺寸。 <div class"video-container"><iframe src"https://www.exa…

NXP Smart Access Car-车用产品整合应用

在汽车技术不断进步的今天&#xff0c;智能化已成为汽车行业发展的主要趋势之一。本次研讨会将深入探讨NXP的Smart Access Car技术&#xff0c;说明如何通过NXP 产品设计提升汽车的安全性、便利性和使用者体验。研讨会将涵盖NXP MCU/NFC等方面的最新解决方案&#xff0c;并探讨…

Qt调用Yolov11导出的Onnx分类模型开发分类检测软件

软件视频地址:视频地址 代码开源地址 之前用Python配合YOLOV11开发一个了分类训练软件&#xff0c;软件只要准备好数据&#xff0c;然后导入就可以训练数据&#xff0c;训练完成后还可以验证&#xff0c;测试&#xff0c;但是要真正落地&#xff0c;还是有点欠缺。配合YOLOV1…

Qt 中实现进程保护的方法

引言 在开发桌面应用程序时&#xff0c;确保应用程序的稳定运行和防止非法关闭是非常重要的。本文将介绍如何在 Qt 框架中实现进程保护&#xff0c;以提高应用程序的稳定性和安全性。 什么是进程保护&#xff1f; 进程保护是一种确保应用程序持续运行的机制。它可以防止应用程序…

入门数据结构JAVADS——如何通过遍历顺序构建二叉树

目录 前言 构建二叉树的前提&#xff1a; 为什么需要两个不同类型的遍历&#xff1a; 前序遍历 中序遍历 我们的算法思路如下: 举例&#xff1a; 代码实现 后序遍历 中序遍历 结尾 前言 入门数据结构JAVA DS——二叉树的介绍 (构建,性质,基本操作等) (1)-CSDN博客 在上…

我毕业后的8年嵌入式工作

2015年毕业&#xff0c;2016年工作到现在已经过了8个年头&#xff0c;借着征文&#xff0c;做个简单的回顾与总结。 2015年从广州番禺职业技术学院毕业&#xff0c;学的是嵌入式技术与应用&#xff0c;我的下一届学弟学妹变物联网了&#xff0c;算是绝版专业了吧。出来后谨遵校…