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 zcmeHL_ct4W7Pe`R&6z6B}HnqMu|Dkj>0 zFjOf%@(*ZnI!3pdn3xt<%|HJunf(p#;HYS*{~OfO=pV`dntXx!=s=X8TVRM&fGbr< zNQjJwuNTh6$=_ARF94Ijqt5@2hspwRTmRzXf|i=@|Negk{x=n9P3AgWR!&|) zQAzoRimIBr#!XEvZ5>@beS=$uM#d%xQ!{f5OC;*Hm9-7}j;)=&!`*w1PR=g(UEMJ5 z9-dy_KE8hb*Z^E$P;f|SSa`&P$cItUF|l#+j}j8`NrdE-)W>P*Po8EFGqbXDa`W;F z3X6)Lm6Vp1S5#I#udb=Bt8Zv*YHoSa+ScCD+11_C`?Bv<|G?nTFzNN1k7-U@_Ci=d^9v-W`do?0_;$E*{E)QuF`oAuCvg;4Yi?FG@up+Z$ou=%Z5 z!ykF6lS+m+lF@2BT9m3c56EP`^iGcpJwjWsg7{sQ*I6wTJr|N^8kA* z(Fb*n7YU($x1S!6*(qI1jJXNipjV1vxgKcRJ-cl4+{Zj3ch$B9D%T9~Qwi2`8gZiM z#!LNyKj`=791u1h+{1Rtaz6W_%iReZ0_=OUBtU;N$eayBWh|g|rXW5_rOv)LJvs{* z`~$i!=rF1k7=7$MH31j~z%YJwa%uUXyfES zltPA|a!@av$a3yTe@a|vl_qV*k{~7jb+J7Bg~)PO+JFilCBF;_7`IUYO+gy&`}@Wp zyQ#-zYy$SiOJEEb;IKSfwyc(2HU z3nyB%K@t%J?v2|4-X(*k&I+_QsrO7Ks{rpT|(wsg}E>rTn>&L--p-$uW7 zv+UMDQIa@(#s6Y4_%45!0ngpfruK-@Ui#_7<`cV_(8R#cgi3zD8QT!RpiL zy-bv@WOS5koJe0!(LsCp)!~Sv=Dr;ds=bv!@|3cqHpNk9Yi+hY9etd0U=bO_EiRii?RKFgj^__GCoLl_aBsC&>qJDq&O%(~6 zsax!S(qSGRKDj6ydG2Fnx)HL~cf8mW)%9)j#c5!?;GjvY_-H^_wj zUr(G4`&`5XpXUY{=+a3=?beBZvcq|Z%8f+NeIH+EWY>2*e6?kl@HKx$QQyrF5MJzi zt*3^K=H1uWBi_nu9j!WNuEhtkpK5cl0Wu$+em}jhGGzTQ}~0@ugYT$5PoUsjdKpMw$;aR;Q5l? z^P`3m(M1_k5hea*>!FeQ{6Jfj_pSFHD5dGV>_yQlkL}F_JeT<+{b^R_*3a%_wz_|* z#>bVOq7=SvZFJoAU+Q~wT$P{^wZEGP%Tw%n98m$nHIuRG#ba=B3#zFr*m_Atk3}K>PbUh z(=^9^3+A2k2a+mG9Bn571XT3^Tv|4lf+le^Z7C6OD?eCk4J>tb^#$gCCqpCvxED_E z_hyOyOH^^)zGd;^3+(F(cG}Dn-PZ6c5kLvO>#hS?nie{W43z~&%r+CN@NzpoiTf{{ zZe>^z{jJVr*n<%z@m@}{0F`8L%}jk4{Ql7d5nlg;(WGUiJl?~=Bu6d}TuN9O%-WeH z?ml=(EOI*$m6B)72!9=`4G%wl@H-n?$;#5uO7u{ za6(0M=fH;$N!V&=85KjO#b9$269bndtOWhx5_hJBPIH~2w3Hcgu&G7^AypFZ^uyc{ ziG2!=Wjh_L1RFCc2{PpqG9X9o2eFnCkRz#+!RHilQrFj{rkZ%lvOC(Up!~+sH@Z5h zk{d@J9CiPg>=(P)$HU_(OCmW|ovDa!z!(n)sF`W3PZ?Ck=M!7|M0sbRy!Y6G4)%GeqW9@_f(d(n=T#U`;wT#X z0tz&Z!>TMofr5Z9;mAwjd}Iex>~qb!d|fPtqi*b4MW;NNd{Ehmnr0z8{OfU#M@j=XAVl%}2`ZgZqUL*K;*yIw`=}y^=X`aKE#@LD$(QP{u>{`&gjUIMAe15Kwf)JipCQ^)Db?1*F2v_%4 zW2#^c>MZOJ^sugg?XiaP&H&ZzEd+L5Wd7(L1VeCKX@=O42WT-!`!HIeV>VJ|;%ba6 z#HJyZapzg59FtHE0$ZV`zI%z38Mzvx3~LCCWz0g_FK`JR6DY=Fq0eF|#@yRipLHUs z*;^|*TR4P{VWiCKt1&~ch6fDnfbz~?)avjY%3HhLei+1NIf2ovvhx?Sx<8nd+4wnz z6WTx=qNRmSejVy_flan1ME-?MZnK@9SQczhpPpD0s4yG~YGc;}=R_Ed zPeqW#qPQSa7%)>Q8k@vV(0$Y2-3SAkMh6L7Ub1E0azoimC168P_Wbl;43PHWY_A1x zVXMP=<_|duC|xHzGeuHG7~GeSR88x+$O@?viuMVyD3J1@nU;ChsR*w8n?fO1F{8;( zC}>S|mX$Vki!Z00NU=6mLmy%YF3SBacCg1jp1`35lzk6v!aphMTR68ppO$ti(I-S2 zV6O$ix5Eo4OSMf~&V-0J19i)gqpbS_HL?7Jh*z<9l3_dbJ}k9DrSYG!=pZ2pK%C=@ zHW6O8!lkrkZ85kjonouSOj>B#@HK`iwZ$0?L05BVGYBxzE)ch?PepuLi?Vc{3G?Wj zpyRt#V$%Z)ric>@9eE9E+^;cc2_I{O8%ifbm1{kvG`^};pl-u}`TeFD{7Q2SxYSC} z5y32h7+dVm!of;TTDcGlh2RE>YmRRNj5}|-vzY8u#cvm0f!_y7cnh~B3QjyFHq|e) z2TPa7`{IOiu$&SPGBJaMJ|a`OOd`i0JD6oo4x@lE^a=W%&=o+Xp3Bgbqjp(wY|0bh74X$I%RQEhExT&`4HtVO(A zrRTjOsW=CEoZpPw+D)hcv>G=XBR579f zZ;+Sw9dz|%_LwE4LI$JvVI0*PbhIpe6?!iGh|VN%Y7xA|hf9LRZwN05wY))Za7ibr zf8~V}X^Xh)0FXaH>U31gZimK!+co>s`-tgQ9f=Z+sKEm!#D*@jRS?hoFI5RdT7S+> zBFHKvMiB>F4dY$Eq|a;`gqfGm24`swJQIV7R__3k@0P`XF^6v$8bfQ;1}f*EPN7T& z2hZZ4)o|8@$5NIx;I)x_q&CxQj&nhfIfH?w*jY%2_4-gt38cg9kw+3eBzrj?s{sR6 zbPsh)!gkbw`yaC{?O|T*rwvt|azG)dy(#uft-B;>Y_=+- zuQLYRd-^%`EDfe@=RgY7&5HKR zt1qLgc)))A?Y6N+Lu^`61)U2P_@H$$geWp|iAIyHjBYjf*ppu(a*TDg)~yz{QL{rG zbzo}wL4o1sshEU@-~A!XA7SK&=4!Dsa$D@v1o_WB$*_YXXm56oZgpd({_eeeKiC0k zniC7hBQ@tP3kg-uys=xrCmIwZH+}ba@X5tlmYd#86qg$n4Mkc7>e|)$uXsew_#+Lf zlk=AG*?-4iLH>f2b#>z(6JrM3h>{s{)+E08^%%5G0fG(GqOY*76e)UWTAgauBT`vu z5!|p2AGR8ZAQtk+9eegz;+uEYh=R7a@o2S-7O^e0%j>T#+Z#9ihaD()@fZc>7?n3TQ!;nHEpO1NG+7#k6DNDV75Iid&m>FQU(EUO zCe%yn_*>Hp+F|W}de2yXTYXWxG5@w9J?i@&m*9#2_WAST^>5=frMiu6(PyZhqYVSk zWmkvv$8N6*?&#mznR;|)G7zY`yC=~j8fhA}$0GQ=5A-VvJSXe8mL{0+Y+K$*p7zj3 zcqHmZeG0X$Y71ZN%=bAH-tvxatv<|!KEQC{>oU{ws)Q9_gq++WqM5E%`IH(Rc1OPR z{Yi)yZ~TIwsAkQU8Up1>-n-*3dDN<$({L~(vX~M1N2$_jx-g=@?XR%33xE6FIo=l9 z`k(b~8rN>V0y(({FBp?iYsU_vYI_;gF!HDFMRqOsmJ{=jtCvrGM8Ee9@cr1k)D%A3+bxROU*fLO@~Q1)yt~a z63tJ