From ddc6b5087c60a26b408a4bbca49493c5685231fe Mon Sep 17 00:00:00 2001 From: Meng Sen Date: Thu, 7 Nov 2024 11:08:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=20MacOS=20Docker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Meng Sen --- .github/README.md | 3 +- README.md | 3 +- apps/macos/1.14/data.yml | 64 ++++++++++++++++++++++++++ apps/macos/1.14/docker-compose.yml | 37 +++++++++++++++ apps/macos/1.14/scripts/init.sh | 15 ++++++ apps/macos/1.14/scripts/uninstall.sh | 10 ++++ apps/macos/1.14/scripts/upgrade.sh | 15 ++++++ apps/macos/README.md | 66 +++++++++++++++++++++++++++ apps/macos/data.yml | 14 ++++++ apps/macos/logo.png | Bin 0 -> 5795 bytes 10 files changed, 225 insertions(+), 2 deletions(-) create mode 100644 apps/macos/1.14/data.yml create mode 100644 apps/macos/1.14/docker-compose.yml create mode 100644 apps/macos/1.14/scripts/init.sh create mode 100644 apps/macos/1.14/scripts/uninstall.sh create mode 100644 apps/macos/1.14/scripts/upgrade.sh create mode 100644 apps/macos/README.md create mode 100644 apps/macos/data.yml create mode 100644 apps/macos/logo.png diff --git a/.github/README.md b/.github/README.md index 4722a50c6..269236e39 100644 --- a/.github/README.md +++ b/.github/README.md @@ -165,7 +165,8 @@ | 🟢 | | Uptime Kuma | https://uptime.kuma.pet/ | 自托管监控工具 | | | 🟢 | | Umami | https://umami.is/ | 为速度和效率而构建的网站分析 | | | 🟢 | | 路由设备监控 | https://github.com/aceberg/WatchYourLAN/ | 轻量级网络 IP 扫描器 | | -| 🟢 | | Windows 系统 | https://www.microsoft.com/ | Docker 容器内的 Windows | | +| 🟢 | | Windows 系统 | https://www.microsoft.com/ | Docker 容器内的 Windows | OS | +| 🟢 | | Mac OS | https://www.apple.com/ | Docker 容器内的 Mac OS | OS | | 🟢 | | WiseFlow | https://github.com/TeamWiseFlow/wiseflow/ | Wiseflow 首席情报官 | | | 🟢 | | 悟空IM | https://githubim.com/ | 让信息传递更简单 | | | 🟢 | | 迅雷 NAS版 | https://github.com/cnk3x/xunlei/ | 迅雷远程下载服务 NAS移植版 | | diff --git a/README.md b/README.md index b924d8285..85ecb4b08 100644 --- a/README.md +++ b/README.md @@ -148,7 +148,8 @@ | 🟢 | | Uptime Kuma | https://uptime.kuma.pet/ | 自托管监控工具 | | | 🟢 | | Umami | https://umami.is/ | 为速度和效率而构建的网站分析 | | | 🟢 | | 路由设备监控 | https://github.com/aceberg/WatchYourLAN/ | 轻量级网络 IP 扫描器 | | -| 🟢 | | Windows 系统 | https://www.microsoft.com/ | Docker 容器内的 Windows | | +| 🟢 | | Windows 系统 | https://www.microsoft.com/ | Docker 容器内的 Windows | OS | +| 🟢 | | Mac OS | https://www.apple.com/ | Docker 容器内的 Mac OS | OS | | 🟢 | | WiseFlow | https://github.com/TeamWiseFlow/wiseflow/ | Wiseflow 首席情报官 | | | 🟢 | | 悟空IM | https://githubim.com/ | 让信息传递更简单 | | | 🟢 | | 迅雷 NAS版 | https://github.com/cnk3x/xunlei/ | 迅雷远程下载服务 NAS移植版 | | diff --git a/apps/macos/1.14/data.yml b/apps/macos/1.14/data.yml new file mode 100644 index 000000000..3ef308e4c --- /dev/null +++ b/apps/macos/1.14/data.yml @@ -0,0 +1,64 @@ +additionalProperties: + formFields: + - default: "/home/macos" + edit: true + envKey: MACOS_STORAGE_ROOT_PATH + labelZh: MacOS 存储目录 + labelEn: MacOS Storage Path + required: true + type: text + - default: 8006 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + - default: 5900 + edit: true + envKey: PANEL_APP_PORT_REMOTE + labelZh: Mac 远程桌面 端口 + labelEn: Mac Remote Desktop Port + required: true + rule: paramPort + type: number + - default: "15" + edit: true + envKey: VERSION + labelZh: MacOS 版本 + labelEn: MacOS Version + required: true + type: select + values: + - label: macOS 15 (Sequoia) + value: "15" + - label: macOS 14 (Sonoma) + value: "14" + - label: macOS 13 (Ventura) + value: "13" + - label: macOS 12 (Monterey) + value: "12" + - label: macOS 11 (Big Sur) + value: "11" + - default: "8G" + edit: true + envKey: RAM_SIZE + labelZh: 内存大小 + labelEn: RAM Size + required: true + type: text + - default: "64G" + edit: true + envKey: DISK_SIZE + labelZh: 硬盘大小 + labelEn: Disk Size + required: true + type: text + - default: 4 + edit: true + envKey: CPU_CORES + labelZh: CPU 核心数 + labelEn: CPU Cores + required: true + type: number diff --git a/apps/macos/1.14/docker-compose.yml b/apps/macos/1.14/docker-compose.yml new file mode 100644 index 000000000..d9b5a635c --- /dev/null +++ b/apps/macos/1.14/docker-compose.yml @@ -0,0 +1,37 @@ +networks: + 1panel-network: + external: true + +services: + windows: + image: dockurr/macos:1.14 + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + restart: always + stop_grace_period: 2m + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:8006 + - ${PANEL_APP_PORT_REMOTE}:5900/tcp + - ${PANEL_APP_PORT_REMOTE}:5900/udp + cap_add: + - NET_ADMIN + devices: + - /dev/kvm:/dev/kvm + - /dev/dri:/dev/dri + # - /dev/nvidia0:/dev/nvidia0 + # - /dev/nvidiactl:/dev/nvidiactl + # - /dev/nvidia-modeset:/dev/nvidia-modeset + # - /dev/nvidia-nvswitchctl:/dev/nvidia-nvswitchctl + # - /dev/nvidia-uvm:/dev/nvidia-uvm + # - /dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools + # - /dev/video11:/dev/video11 + env_file: + - /etc/1panel/envs/global.env + - ${ENV_FILE:-/etc/1panel/envs/default.env} + volumes: + - ${MACOS_STORAGE_ROOT_PATH}/storage:/storage + environment: + - VERSION=${VERSION} diff --git a/apps/macos/1.14/scripts/init.sh b/apps/macos/1.14/scripts/init.sh new file mode 100644 index 000000000..77b849120 --- /dev/null +++ b/apps/macos/1.14/scripts/init.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/macos/1.14/scripts/uninstall.sh b/apps/macos/1.14/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/apps/macos/1.14/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/macos/1.14/scripts/upgrade.sh b/apps/macos/1.14/scripts/upgrade.sh new file mode 100644 index 000000000..77b849120 --- /dev/null +++ b/apps/macos/1.14/scripts/upgrade.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/macos/README.md b/apps/macos/README.md new file mode 100644 index 000000000..81cde7f29 --- /dev/null +++ b/apps/macos/README.md @@ -0,0 +1,66 @@ +# Mac OS + +Docker 容器内的 Mac OS + +![Mac OS](https://file.lifebus.top/imgs/macos_cover.jpg) + +![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue) + +## 简介 + +macOS是苹果公司推出的使用图形用户界面的操作系统,为麦金塔系列电脑的主操作系统。 + +## 特性 + ++ 国际标准下载器 ++ KVM 加速 ++ 网络浏览器 + +## 安装说明 + +
+
+ ⚠️ +
+ 警告
+ 该应用申请使用 `网络特权模式`, 将允许应用在容器内部执行网络管理相关特权操作。 +
+
+
+ +由于需要下载系统镜像,安装过程的快慢取决于您的网络,请耐心等待。 + +### 安装步骤 + +启动容器,并使用您的网页浏览器连接到端口 8006。 + +选择 Disk Utility ,然后选择最大的 Apple Inc. VirtIO Block Media 磁盘。 + +点击 Erase 按钮进行磁盘格式化,并给它起一个您喜欢的易于识别的名字。 + +关闭当前窗口,然后通过点击 Reinstall macOS 继续安装。 + +当系统提示您选择安装位置时,请选择您之前创建的磁盘。 + +所有文件复制完成后,请选择您的区域、语言和账户设置。 + +## 常见问题 + +### kvm 模块加载失败 + +请检查是否开启了虚拟化功能,或者在 BIOS 中开启虚拟化功能。 + +### 如何通过 USB 设备进行数据传输 + +请修改 docker-compose.yml 参数配置 + +```yml +environment: + ARGUMENTS: "-device usb-host,vendorid=0x1234,productid=0x1234" +devices: + - /dev/bus/usb +``` + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/apps/macos/data.yml b/apps/macos/data.yml new file mode 100644 index 000000000..058449a6c --- /dev/null +++ b/apps/macos/data.yml @@ -0,0 +1,14 @@ +additionalProperties: + key: macos + name: Mac OS + tags: + - WebSite + - Local + shortDescZh: Docker 容器内的 Mac OS + shortDescEn: Mac OS in Docker container + type: website + crossVersionUpdate: true + limit: 0 + website: https://www.apple.com/ + github: https://github.com/dockur/macos/ + document: https://www.apple.com/ diff --git a/apps/macos/logo.png b/apps/macos/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..97c2858378d53f2533e19d827a2f4147d0bcf84a GIT binary patch literal 5795 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