[{"data":1,"prerenderedAt":437},["ShallowReactive",2],{"page-zhHans-\u002Fbuild-linux-docker":3},{"id":4,"title":5,"body":6,"description":16,"draft":429,"extension":430,"hero":431,"meta":432,"navigation":133,"path":433,"seo":434,"stem":435,"tags":431,"updatedAt":431,"__hash__":436},"content_zhHans\u002Fbuild-linux-docker.md","Linux构建（使用Docker）",{"type":7,"value":8,"toc":410},"minimark",[9,13,17,22,26,42,45,50,61,65,76,80,90,94,98,153,157,225,229,232,240,244,279,283,287,319,323,338,341,366,370,381,385,406],[10,11,5],"h1",{"id":12},"linux构建使用docker",[14,15,16],"p",{},"如何在Windows、macOS或Linux上使用Docker构建Linux二进制文件",[18,19,21],"h2",{"id":20},"前置要求","📋 前置要求",[23,24,25],"h3",{"id":25},"所有平台通用",[27,28,29,33,36,39],"ul",{},[30,31,32],"li",{},"Docker Desktop或Docker Engine",[30,34,35],{},"pnpm (v10.2.0或更高版本)",[30,37,38],{},"8GB以上内存（16GB推荐）",[30,40,41],{},"20GB以上空闲磁盘空间",[23,43,44],{"id":44},"平台特定要求",[46,47,49],"h4",{"id":48},"windows","Windows",[27,51,52,55,58],{},[30,53,54],{},"Windows 10\u002F11 (64位)",[30,56,57],{},"WSL 2（推荐）",[30,59,60],{},"PowerShell 5.1或更高版本",[46,62,64],{"id":63},"macos","macOS",[27,66,67,70,73],{},[30,68,69],{},"macOS 10.15或更高版本",[30,71,72],{},"Bash",[30,74,75],{},"Docker Desktop for Mac",[46,77,79],{"id":78},"linux","Linux",[27,81,82,85,88],{},[30,83,84],{},"64位Linux发行版",[30,86,87],{},"Docker Engine 20.10或更高版本",[30,89,72],{},[18,91,93],{"id":92},"使用方法","🚀 使用方法",[23,95,97],{"id":96},"在windows上构建","在Windows上构建",[99,100,105],"pre",{"className":101,"code":102,"language":103,"meta":104,"style":104},"language-powershell shiki shiki-themes github-light github-dark","# 从项目根目录运行\npnpm run build:tauri:linux-x64    # x86_64 Linux\npnpm run build:tauri:linux-arm64  # ARM64 Linux\n\n# 或直接运行脚本\npwsh .\\scripts\\build-linux-docker.ps1 -Target x64\npwsh .\\scripts\\build-linux-docker.ps1 -Target arm64\n","powershell","",[106,107,108,116,122,128,135,141,147],"code",{"__ignoreMap":104},[109,110,113],"span",{"class":111,"line":112},"line",1,[109,114,115],{},"# 从项目根目录运行\n",[109,117,119],{"class":111,"line":118},2,[109,120,121],{},"pnpm run build:tauri:linux-x64    # x86_64 Linux\n",[109,123,125],{"class":111,"line":124},3,[109,126,127],{},"pnpm run build:tauri:linux-arm64  # ARM64 Linux\n",[109,129,131],{"class":111,"line":130},4,[109,132,134],{"emptyLinePlaceholder":133},true,"\n",[109,136,138],{"class":111,"line":137},5,[109,139,140],{},"# 或直接运行脚本\n",[109,142,144],{"class":111,"line":143},6,[109,145,146],{},"pwsh .\\scripts\\build-linux-docker.ps1 -Target x64\n",[109,148,150],{"class":111,"line":149},7,[109,151,152],{},"pwsh .\\scripts\\build-linux-docker.ps1 -Target arm64\n",[23,154,156],{"id":155},"在macos-linux上构建","在macOS \u002F Linux上构建",[99,158,162],{"className":159,"code":160,"language":161,"meta":104,"style":104},"language-bash shiki shiki-themes github-light github-dark","# 从项目根目录运行\nbash scripts\u002Fbuild-linux-docker.sh x64    # x86_64 Linux\nbash scripts\u002Fbuild-linux-docker.sh arm64  # ARM64 Linux\n\n# 或从app目录运行\npnpm run build:tauri:linux-docker-x64\npnpm run build:tauri:linux-docker-arm64\n","bash",[106,163,164,169,184,196,200,205,216],{"__ignoreMap":104},[109,165,166],{"class":111,"line":112},[109,167,115],{"class":168},"sJ8bj",[109,170,171,174,178,181],{"class":111,"line":118},[109,172,161],{"class":173},"sScJk",[109,175,177],{"class":176},"sZZnC"," scripts\u002Fbuild-linux-docker.sh",[109,179,180],{"class":176}," x64",[109,182,183],{"class":168},"    # x86_64 Linux\n",[109,185,186,188,190,193],{"class":111,"line":124},[109,187,161],{"class":173},[109,189,177],{"class":176},[109,191,192],{"class":176}," arm64",[109,194,195],{"class":168},"  # ARM64 Linux\n",[109,197,198],{"class":111,"line":130},[109,199,134],{"emptyLinePlaceholder":133},[109,201,202],{"class":111,"line":137},[109,203,204],{"class":168},"# 或从app目录运行\n",[109,206,207,210,213],{"class":111,"line":143},[109,208,209],{"class":173},"pnpm",[109,211,212],{"class":176}," run",[109,214,215],{"class":176}," build:tauri:linux-docker-x64\n",[109,217,218,220,222],{"class":111,"line":149},[109,219,209],{"class":173},[109,221,212],{"class":176},[109,223,224],{"class":176}," build:tauri:linux-docker-arm64\n",[18,226,228],{"id":227},"构建产物","📦 构建产物",[14,230,231],{},"构建产物将生成在以下目录中：",[99,233,238],{"className":234,"code":236,"language":237,"meta":104},[235],"language-text","app\u002Fsrc-tauri\u002Ftarget\u002F\n  ├── x86_64-unknown-linux-gnu\u002Frelease\u002Fbundle\u002F\n  │   ├── deb\u002F           # Debian\u002FUbuntu软件包\n  │   ├── rpm\u002F           # Red Hat\u002FFedora软件包\n  │   └── appimage\u002F      # AppImage（推荐用于分发）\n  │\n  └── aarch64-unknown-linux-gnu\u002Frelease\u002Fbundle\u002F\n      ├── deb\u002F\n      ├── rpm\u002F\n      └── appimage\u002F\n","text",[106,239,236],{"__ignoreMap":104},[18,241,243],{"id":242},"️-工作原理","⚙️ 工作原理",[245,246,247,265,276],"ol",{},[30,248,249,250,253,254],{},"从",[106,251,252],{},"Dockerfile.linux-build","构建Docker镜像",[27,255,256,259,262],{},[30,257,258],{},"基于Rust 1.83 + Debian Bookworm",[30,260,261],{},"安装Tauri依赖项（WebKit2GTK、GTK3等）",[30,263,264],{},"安装Node.js 22.x和pnpm",[30,266,267,268],{},"在Docker容器内运行Tauri构建",[27,269,270,273],{},[30,271,272],{},"挂载项目目录",[30,274,275],{},"使用指定的目标架构进行构建",[30,277,278],{},"将产物输出到macOS目录",[18,280,282],{"id":281},"故障排除","🔧 故障排除",[23,284,286],{"id":285},"重新构建docker镜像","重新构建Docker镜像",[99,288,290],{"className":159,"code":289,"language":161,"meta":104,"style":104},"docker build -f Dockerfile.linux-build -t dropwebp-linux-builder --no-cache .\n",[106,291,292],{"__ignoreMap":104},[109,293,294,297,300,304,307,310,313,316],{"class":111,"line":112},[109,295,296],{"class":173},"docker",[109,298,299],{"class":176}," build",[109,301,303],{"class":302},"sj4cs"," -f",[109,305,306],{"class":176}," Dockerfile.linux-build",[109,308,309],{"class":302}," -t",[109,311,312],{"class":176}," dropwebp-linux-builder",[109,314,315],{"class":302}," --no-cache",[109,317,318],{"class":176}," .\n",[23,320,322],{"id":321},"删除docker镜像","删除Docker镜像",[99,324,326],{"className":159,"code":325,"language":161,"meta":104,"style":104},"docker rmi dropwebp-linux-builder\n",[106,327,328],{"__ignoreMap":104},[109,329,330,332,335],{"class":111,"line":112},[109,331,296],{"class":173},[109,333,334],{"class":176}," rmi",[109,336,337],{"class":176}," dropwebp-linux-builder\n",[23,339,340],{"id":340},"清除构建缓存",[99,342,344],{"className":159,"code":343,"language":161,"meta":104,"style":104},"rm -rf app\u002Fsrc-tauri\u002Ftarget\u002Fx86_64-unknown-linux-gnu\nrm -rf app\u002Fsrc-tauri\u002Ftarget\u002Faarch64-unknown-linux-gnu\n",[106,345,346,357],{"__ignoreMap":104},[109,347,348,351,354],{"class":111,"line":112},[109,349,350],{"class":173},"rm",[109,352,353],{"class":302}," -rf",[109,355,356],{"class":176}," app\u002Fsrc-tauri\u002Ftarget\u002Fx86_64-unknown-linux-gnu\n",[109,358,359,361,363],{"class":111,"line":118},[109,360,350],{"class":173},[109,362,353],{"class":302},[109,364,365],{"class":176}," app\u002Fsrc-tauri\u002Ftarget\u002Faarch64-unknown-linux-gnu\n",[18,367,369],{"id":368},"注意事项","📝 注意事项",[27,371,372,375,378],{},[30,373,374],{},"初次构建由于Docker镜像构建和下载需要较长时间（20-30分钟）",[30,376,377],{},"后续构建会重用Docker镜像，速度较快（10-15分钟）",[30,379,380],{},"ARM64构建可能比x86_64构建需要更长时间",[18,382,384],{"id":383},"推荐的分发格式","🎯 推荐的分发格式",[27,386,387,394,400],{},[30,388,389,393],{},[390,391,392],"strong",{},"AppImage","：推荐用于分发（适用于所有Linux发行版）",[30,395,396,399],{},[390,397,398],{},".deb","：适用于Debian\u002FUbuntu用户",[30,401,402,405],{},[390,403,404],{},".rpm","：适用于Red Hat\u002FFedora用户",[407,408,409],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":104,"searchDepth":118,"depth":118,"links":411},[412,416,420,421,422,427,428],{"id":20,"depth":118,"text":21,"children":413},[414,415],{"id":25,"depth":124,"text":25},{"id":44,"depth":124,"text":44},{"id":92,"depth":118,"text":93,"children":417},[418,419],{"id":96,"depth":124,"text":97},{"id":155,"depth":124,"text":156},{"id":227,"depth":118,"text":228},{"id":242,"depth":118,"text":243},{"id":281,"depth":118,"text":282,"children":423},[424,425,426],{"id":285,"depth":124,"text":286},{"id":321,"depth":124,"text":322},{"id":340,"depth":124,"text":340},{"id":368,"depth":118,"text":369},{"id":383,"depth":118,"text":384},false,"md",null,{},"\u002Fbuild-linux-docker",{"title":5,"description":16},"build-linux-docker","81JZlUOt3sWmQp0Ovwv9qS5Jxxq2iPIq6AjctykP_DI",1780198564350]