[{"data":1,"prerenderedAt":909},["ShallowReactive",2],{"page-en-\u002Fbuild-linux-docker":3},{"id":4,"title":5,"body":6,"description":16,"draft":901,"extension":902,"hero":903,"meta":904,"navigation":135,"path":905,"seo":906,"stem":907,"tags":903,"updatedAt":903,"__hash__":908},"content_en\u002Fbuild-linux-docker.md","Building for Linux (Using Docker)",{"type":7,"value":8,"toc":873},"minimark",[9,13,17,22,27,43,47,52,63,67,78,82,92,96,100,155,159,227,231,235,238,246,250,279,286,296,300,307,384,388,392,432,436,476,480,514,518,522,528,534,538,544,550,566,570,574,590,594,597,648,652,737,741,806,810,824,828,848,852,869],[10,11,5],"h1",{"id":12},"building-for-linux-using-docker",[14,15,16],"p",{},"How to build Linux binaries from Windows, macOS, or Linux using Docker",[18,19,21],"h2",{"id":20},"prerequisites","📋 Prerequisites",[23,24,26],"h3",{"id":25},"common-for-all-platforms","Common for All Platforms",[28,29,30,34,37,40],"ul",{},[31,32,33],"li",{},"Docker Desktop or Docker Engine",[31,35,36],{},"pnpm (v10.2.0 or higher)",[31,38,39],{},"8GB+ RAM (16GB recommended)",[31,41,42],{},"20GB+ free disk space",[23,44,46],{"id":45},"platform-specific","Platform-Specific",[48,49,51],"h4",{"id":50},"windows","Windows",[28,53,54,57,60],{},[31,55,56],{},"Windows 10\u002F11 (64-bit)",[31,58,59],{},"WSL 2 (recommended)",[31,61,62],{},"PowerShell 5.1 or higher",[48,64,66],{"id":65},"macos","macOS",[28,68,69,72,75],{},[31,70,71],{},"macOS 10.15 or higher",[31,73,74],{},"Bash",[31,76,77],{},"Docker Desktop for Mac",[48,79,81],{"id":80},"linux","Linux",[28,83,84,87,90],{},[31,85,86],{},"64-bit Linux distribution",[31,88,89],{},"Docker Engine 20.10 or higher",[31,91,74],{},[18,93,95],{"id":94},"usage","🚀 Usage",[23,97,99],{"id":98},"building-on-windows","Building on Windows",[101,102,107],"pre",{"className":103,"code":104,"language":105,"meta":106,"style":106},"language-powershell shiki shiki-themes github-light github-dark","# Run from project root\npnpm run build:tauri:linux-x64    # x86_64 Linux\npnpm run build:tauri:linux-arm64  # ARM64 Linux\n\n# Or run the script directly\npwsh .\\scripts\\build-linux-docker.ps1 -Target x64\npwsh .\\scripts\\build-linux-docker.ps1 -Target arm64\n","powershell","",[108,109,110,118,124,130,137,143,149],"code",{"__ignoreMap":106},[111,112,115],"span",{"class":113,"line":114},"line",1,[111,116,117],{},"# Run from project root\n",[111,119,121],{"class":113,"line":120},2,[111,122,123],{},"pnpm run build:tauri:linux-x64    # x86_64 Linux\n",[111,125,127],{"class":113,"line":126},3,[111,128,129],{},"pnpm run build:tauri:linux-arm64  # ARM64 Linux\n",[111,131,133],{"class":113,"line":132},4,[111,134,136],{"emptyLinePlaceholder":135},true,"\n",[111,138,140],{"class":113,"line":139},5,[111,141,142],{},"# Or run the script directly\n",[111,144,146],{"class":113,"line":145},6,[111,147,148],{},"pwsh .\\scripts\\build-linux-docker.ps1 -Target x64\n",[111,150,152],{"class":113,"line":151},7,[111,153,154],{},"pwsh .\\scripts\\build-linux-docker.ps1 -Target arm64\n",[23,156,158],{"id":157},"building-on-macos-linux","Building on macOS \u002F Linux",[101,160,164],{"className":161,"code":162,"language":163,"meta":106,"style":106},"language-bash shiki shiki-themes github-light github-dark","# Run from project root\nbash scripts\u002Fbuild-linux-docker.sh x64    # x86_64 Linux\nbash scripts\u002Fbuild-linux-docker.sh arm64  # ARM64 Linux\n\n# Or from app directory\npnpm run build:tauri:linux-docker-x64\npnpm run build:tauri:linux-docker-arm64\n","bash",[108,165,166,171,186,198,202,207,218],{"__ignoreMap":106},[111,167,168],{"class":113,"line":114},[111,169,117],{"class":170},"sJ8bj",[111,172,173,176,180,183],{"class":113,"line":120},[111,174,163],{"class":175},"sScJk",[111,177,179],{"class":178},"sZZnC"," scripts\u002Fbuild-linux-docker.sh",[111,181,182],{"class":178}," x64",[111,184,185],{"class":170},"    # x86_64 Linux\n",[111,187,188,190,192,195],{"class":113,"line":126},[111,189,163],{"class":175},[111,191,179],{"class":178},[111,193,194],{"class":178}," arm64",[111,196,197],{"class":170},"  # ARM64 Linux\n",[111,199,200],{"class":113,"line":132},[111,201,136],{"emptyLinePlaceholder":135},[111,203,204],{"class":113,"line":139},[111,205,206],{"class":170},"# Or from app directory\n",[111,208,209,212,215],{"class":113,"line":145},[111,210,211],{"class":175},"pnpm",[111,213,214],{"class":178}," run",[111,216,217],{"class":178}," build:tauri:linux-docker-x64\n",[111,219,220,222,224],{"class":113,"line":151},[111,221,211],{"class":175},[111,223,214],{"class":178},[111,225,226],{"class":178}," build:tauri:linux-docker-arm64\n",[18,228,230],{"id":229},"build-artifacts","📦 Build Artifacts",[23,232,234],{"id":233},"default-appimage-disabled","Default (AppImage Disabled)",[14,236,237],{},"Build artifacts are generated in the following directories:",[101,239,244],{"className":240,"code":242,"language":243,"meta":106},[241],"language-text","app\u002Fsrc-tauri\u002Ftarget\u002F\n  ├── x86_64-unknown-linux-gnu\u002Frelease\u002Fbundle\u002F\n  │   ├── deb\u002F           # Debian\u002FUbuntu packages\n  │   └── rpm\u002F           # Red Hat\u002FFedora packages\n  │\n  └── aarch64-unknown-linux-gnu\u002Frelease\u002Fbundle\u002F\n      ├── deb\u002F\n      └── rpm\u002F\n","text",[108,245,242],{"__ignoreMap":106},[23,247,249],{"id":248},"with-appimage-enabled","With AppImage Enabled",[101,251,253],{"className":103,"code":252,"language":105,"meta":106,"style":106},"# Windows\npwsh .\\scripts\\build-linux-docker.ps1 -Target x64 -IncludeAppImage\n\n# macOS\u002FLinux\nINCLUDE_APPIMAGE=true bash scripts\u002Fbuild-linux-docker.sh x64\n",[108,254,255,260,265,269,274],{"__ignoreMap":106},[111,256,257],{"class":113,"line":114},[111,258,259],{},"# Windows\n",[111,261,262],{"class":113,"line":120},[111,263,264],{},"pwsh .\\scripts\\build-linux-docker.ps1 -Target x64 -IncludeAppImage\n",[111,266,267],{"class":113,"line":126},[111,268,136],{"emptyLinePlaceholder":135},[111,270,271],{"class":113,"line":132},[111,272,273],{},"# macOS\u002FLinux\n",[111,275,276],{"class":113,"line":139},[111,277,278],{},"INCLUDE_APPIMAGE=true bash scripts\u002Fbuild-linux-docker.sh x64\n",[14,280,281,282,285],{},"An additional ",[108,283,284],{},"appimage\u002F"," directory will be created with AppImage files.",[287,288,289],"blockquote",{},[14,290,291,295],{},[292,293,294],"strong",{},"Note",": AppImage builds require FUSE, which has limitations in Docker environments.",[18,297,299],{"id":298},"️-build-configuration","⚙️ Build Configuration",[14,301,302,303,306],{},"You can customize build settings in the ",[108,304,305],{},".env"," file:",[101,308,310],{"className":161,"code":309,"language":163,"meta":106,"style":106},"# Docker Build Settings\nBUILD_CPUS=4              # Number of CPU cores to use\nBUILD_MEMORY=8g           # Memory limit\nCARGO_BUILD_JOBS=4        # Cargo parallel jobs\nMAKEFLAGS=-j4             # Make parallelism\nINCLUDE_APPIMAGE=false    # Include AppImage\n",[108,311,312,317,333,346,358,371],{"__ignoreMap":106},[111,313,314],{"class":113,"line":114},[111,315,316],{"class":170},"# Docker Build Settings\n",[111,318,319,323,327,330],{"class":113,"line":120},[111,320,322],{"class":321},"sVt8B","BUILD_CPUS",[111,324,326],{"class":325},"szBVR","=",[111,328,329],{"class":178},"4",[111,331,332],{"class":170},"              # Number of CPU cores to use\n",[111,334,335,338,340,343],{"class":113,"line":126},[111,336,337],{"class":321},"BUILD_MEMORY",[111,339,326],{"class":325},[111,341,342],{"class":178},"8g",[111,344,345],{"class":170},"           # Memory limit\n",[111,347,348,351,353,355],{"class":113,"line":132},[111,349,350],{"class":321},"CARGO_BUILD_JOBS",[111,352,326],{"class":325},[111,354,329],{"class":178},[111,356,357],{"class":170},"        # Cargo parallel jobs\n",[111,359,360,363,365,368],{"class":113,"line":139},[111,361,362],{"class":321},"MAKEFLAGS",[111,364,326],{"class":325},[111,366,367],{"class":178},"-j4",[111,369,370],{"class":170},"             # Make parallelism\n",[111,372,373,376,378,381],{"class":113,"line":145},[111,374,375],{"class":321},"INCLUDE_APPIMAGE",[111,377,326],{"class":325},[111,379,380],{"class":178},"false",[111,382,383],{"class":170},"    # Include AppImage\n",[23,385,387],{"id":386},"performance-optimization","Performance Optimization",[48,389,391],{"id":390},"for-high-performance-machines","For High-Performance Machines",[101,393,395],{"className":161,"code":394,"language":163,"meta":106,"style":106},"BUILD_CPUS=12\nBUILD_MEMORY=16g\nCARGO_BUILD_JOBS=12\nMAKEFLAGS=-j12\n",[108,396,397,406,415,423],{"__ignoreMap":106},[111,398,399,401,403],{"class":113,"line":114},[111,400,322],{"class":321},[111,402,326],{"class":325},[111,404,405],{"class":178},"12\n",[111,407,408,410,412],{"class":113,"line":120},[111,409,337],{"class":321},[111,411,326],{"class":325},[111,413,414],{"class":178},"16g\n",[111,416,417,419,421],{"class":113,"line":126},[111,418,350],{"class":321},[111,420,326],{"class":325},[111,422,405],{"class":178},[111,424,425,427,429],{"class":113,"line":132},[111,426,362],{"class":321},[111,428,326],{"class":325},[111,430,431],{"class":178},"-j12\n",[48,433,435],{"id":434},"for-typical-machines","For Typical Machines",[101,437,439],{"className":161,"code":438,"language":163,"meta":106,"style":106},"BUILD_CPUS=4\nBUILD_MEMORY=8g\nCARGO_BUILD_JOBS=4\nMAKEFLAGS=-j4\n",[108,440,441,450,459,467],{"__ignoreMap":106},[111,442,443,445,447],{"class":113,"line":114},[111,444,322],{"class":321},[111,446,326],{"class":325},[111,448,449],{"class":178},"4\n",[111,451,452,454,456],{"class":113,"line":120},[111,453,337],{"class":321},[111,455,326],{"class":325},[111,457,458],{"class":178},"8g\n",[111,460,461,463,465],{"class":113,"line":126},[111,462,350],{"class":321},[111,464,326],{"class":325},[111,466,449],{"class":178},[111,468,469,471,473],{"class":113,"line":132},[111,470,362],{"class":321},[111,472,326],{"class":325},[111,474,475],{"class":178},"-j4\n",[18,477,479],{"id":478},"️-how-it-works","⚙️ How It Works",[481,482,483,497,511],"ol",{},[31,484,485,486],{},"Building Docker Image",[28,487,488,491,494],{},[31,489,490],{},"Based on Rust + Debian Bookworm",[31,492,493],{},"Installs Tauri dependencies (WebKit2GTK, GTK3, etc.)",[31,495,496],{},"Installs Node.js and pnpm",[31,498,499,500],{},"Running Tauri Build in Docker Container",[28,501,502,505,508],{},[31,503,504],{},"Mounts project directory",[31,506,507],{},"Builds for specified target architecture",[31,509,510],{},"Uses Docker volumes for caching",[31,512,513],{},"Outputs artifacts to host directory",[18,515,517],{"id":516},"troubleshooting","🔧 Troubleshooting",[23,519,521],{"id":520},"docker-not-found-windows","Docker Not Found (Windows)",[101,523,526],{"className":524,"code":525,"language":243,"meta":106},[241],"❌ Error: Docker Desktop is not running.\n",[108,527,525],{"__ignoreMap":106},[14,529,530,533],{},[292,531,532],{},"Solution",": Start Docker Desktop and try again.",[23,535,537],{"id":536},"out-of-memory","Out of Memory",[14,539,540,543],{},[292,541,542],{},"Symptoms",": Memory errors during build",[14,545,546,549],{},[292,547,548],{},"Solutions",":",[481,551,552,557,560],{},[31,553,554,555],{},"Increase memory limit in ",[108,556,305],{},[31,558,559],{},"Increase memory in Docker Desktop resource settings (Settings → Resources → Memory)",[31,561,562,563,565],{},"Reduce parallel build count (decrease ",[108,564,322],{},")",[23,567,569],{"id":568},"slow-build","Slow Build",[14,571,572,549],{},[292,573,548],{},[28,575,576,581,584,587],{},[31,577,578,579],{},"Increase parallelism in ",[108,580,305],{},[31,582,583],{},"Increase Docker Desktop resources (CPU, memory)",[31,585,586],{},"Use SSD storage",[31,588,589],{},"Utilize cache volumes",[23,591,593],{"id":592},"clear-build-cache","Clear Build Cache",[48,595,51],{"id":596},"windows-1",[101,598,600],{"className":103,"code":599,"language":105,"meta":106,"style":106},"# Clear x86_64 cache\ndocker volume rm dropwebp-cargo-cache-linux-amd64\ndocker volume rm dropwebp-pnpm-cache-linux-amd64\ndocker volume rm dropwebp-target-cache-linux-amd64\n\n# Clear ARM64 cache\ndocker volume rm dropwebp-cargo-cache-linux-arm64\ndocker volume rm dropwebp-pnpm-cache-linux-arm64\ndocker volume rm dropwebp-target-cache-linux-arm64\n",[108,601,602,607,612,617,622,626,631,636,642],{"__ignoreMap":106},[111,603,604],{"class":113,"line":114},[111,605,606],{},"# Clear x86_64 cache\n",[111,608,609],{"class":113,"line":120},[111,610,611],{},"docker volume rm dropwebp-cargo-cache-linux-amd64\n",[111,613,614],{"class":113,"line":126},[111,615,616],{},"docker volume rm dropwebp-pnpm-cache-linux-amd64\n",[111,618,619],{"class":113,"line":132},[111,620,621],{},"docker volume rm dropwebp-target-cache-linux-amd64\n",[111,623,624],{"class":113,"line":139},[111,625,136],{"emptyLinePlaceholder":135},[111,627,628],{"class":113,"line":145},[111,629,630],{},"# Clear ARM64 cache\n",[111,632,633],{"class":113,"line":151},[111,634,635],{},"docker volume rm dropwebp-cargo-cache-linux-arm64\n",[111,637,639],{"class":113,"line":638},8,[111,640,641],{},"docker volume rm dropwebp-pnpm-cache-linux-arm64\n",[111,643,645],{"class":113,"line":644},9,[111,646,647],{},"docker volume rm dropwebp-target-cache-linux-arm64\n",[48,649,651],{"id":650},"macos-linux","macOS \u002F Linux",[101,653,654],{"className":161,"code":599,"language":163,"meta":106,"style":106},[108,655,656,660,674,685,696,700,704,715,726],{"__ignoreMap":106},[111,657,658],{"class":113,"line":114},[111,659,606],{"class":170},[111,661,662,665,668,671],{"class":113,"line":120},[111,663,664],{"class":175},"docker",[111,666,667],{"class":178}," volume",[111,669,670],{"class":178}," rm",[111,672,673],{"class":178}," dropwebp-cargo-cache-linux-amd64\n",[111,675,676,678,680,682],{"class":113,"line":126},[111,677,664],{"class":175},[111,679,667],{"class":178},[111,681,670],{"class":178},[111,683,684],{"class":178}," dropwebp-pnpm-cache-linux-amd64\n",[111,686,687,689,691,693],{"class":113,"line":132},[111,688,664],{"class":175},[111,690,667],{"class":178},[111,692,670],{"class":178},[111,694,695],{"class":178}," dropwebp-target-cache-linux-amd64\n",[111,697,698],{"class":113,"line":139},[111,699,136],{"emptyLinePlaceholder":135},[111,701,702],{"class":113,"line":145},[111,703,630],{"class":170},[111,705,706,708,710,712],{"class":113,"line":151},[111,707,664],{"class":175},[111,709,667],{"class":178},[111,711,670],{"class":178},[111,713,714],{"class":178}," dropwebp-cargo-cache-linux-arm64\n",[111,716,717,719,721,723],{"class":113,"line":638},[111,718,664],{"class":175},[111,720,667],{"class":178},[111,722,670],{"class":178},[111,724,725],{"class":178}," dropwebp-pnpm-cache-linux-arm64\n",[111,727,728,730,732,734],{"class":113,"line":644},[111,729,664],{"class":175},[111,731,667],{"class":178},[111,733,670],{"class":178},[111,735,736],{"class":178}," dropwebp-target-cache-linux-arm64\n",[23,738,740],{"id":739},"rebuild-docker-image","Rebuild Docker Image",[101,742,744],{"className":161,"code":743,"language":163,"meta":106,"style":106},"# For x86_64\ndocker build -f Dockerfile.linux-x64 -t dropwebp-linux-x64-builder --no-cache .\n\n# For ARM64\ndocker build -f Dockerfile.linux-arm64 -t dropwebp-linux-arm64-builder --no-cache .\n",[108,745,746,751,777,781,786],{"__ignoreMap":106},[111,747,748],{"class":113,"line":114},[111,749,750],{"class":170},"# For x86_64\n",[111,752,753,755,758,762,765,768,771,774],{"class":113,"line":120},[111,754,664],{"class":175},[111,756,757],{"class":178}," build",[111,759,761],{"class":760},"sj4cs"," -f",[111,763,764],{"class":178}," Dockerfile.linux-x64",[111,766,767],{"class":760}," -t",[111,769,770],{"class":178}," dropwebp-linux-x64-builder",[111,772,773],{"class":760}," --no-cache",[111,775,776],{"class":178}," .\n",[111,778,779],{"class":113,"line":126},[111,780,136],{"emptyLinePlaceholder":135},[111,782,783],{"class":113,"line":132},[111,784,785],{"class":170},"# For ARM64\n",[111,787,788,790,792,794,797,799,802,804],{"class":113,"line":139},[111,789,664],{"class":175},[111,791,757],{"class":178},[111,793,761],{"class":760},[111,795,796],{"class":178}," Dockerfile.linux-arm64",[111,798,767],{"class":760},[111,800,801],{"class":178}," dropwebp-linux-arm64-builder",[111,803,773],{"class":760},[111,805,776],{"class":178},[18,807,809],{"id":808},"notes","📝 Notes",[28,811,812,815,818,821],{},[31,813,814],{},"Initial build takes time for Docker image build and downloads (20-40 minutes)",[31,816,817],{},"Subsequent builds are faster using cache (5-15 minutes)",[31,819,820],{},"ARM64 builds may take longer than x86_64 builds",[31,822,823],{},"WSL 2 is recommended for Windows environments",[18,825,827],{"id":826},"recommended-distribution-format","🎯 Recommended Distribution Format",[28,829,830,836,842],{},[31,831,832,835],{},[292,833,834],{},".deb",": For Debian\u002FUbuntu users (generated by default)",[31,837,838,841],{},[292,839,840],{},".rpm",": For Red Hat\u002FFedora users (generated by default)",[31,843,844,847],{},[292,845,846],{},"AppImage",": Recommended for distribution (works on all Linux distributions) *optional",[18,849,851],{"id":850},"related-documentation","📚 Related Documentation",[28,853,854,862],{},[31,855,856,861],{},[857,858,860],"a",{"href":859},"..\u002F..\u002F..\u002FDOCKER_BUILD","DOCKER_BUILD.md in root directory"," - Comprehensive guide for all platforms",[31,863,864,868],{},[857,865,867],{"href":866},"..\u002F..\u002F..\u002FDOCKER_BUILD_WINDOWS","DOCKER_BUILD_WINDOWS.md in root directory"," - Windows-specific detailed instructions",[870,871,872],"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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":106,"searchDepth":120,"depth":120,"links":874},[875,879,883,887,890,891,898,899,900],{"id":20,"depth":120,"text":21,"children":876},[877,878],{"id":25,"depth":126,"text":26},{"id":45,"depth":126,"text":46},{"id":94,"depth":120,"text":95,"children":880},[881,882],{"id":98,"depth":126,"text":99},{"id":157,"depth":126,"text":158},{"id":229,"depth":120,"text":230,"children":884},[885,886],{"id":233,"depth":126,"text":234},{"id":248,"depth":126,"text":249},{"id":298,"depth":120,"text":299,"children":888},[889],{"id":386,"depth":126,"text":387},{"id":478,"depth":120,"text":479},{"id":516,"depth":120,"text":517,"children":892},[893,894,895,896,897],{"id":520,"depth":126,"text":521},{"id":536,"depth":126,"text":537},{"id":568,"depth":126,"text":569},{"id":592,"depth":126,"text":593},{"id":739,"depth":126,"text":740},{"id":808,"depth":120,"text":809},{"id":826,"depth":120,"text":827},{"id":850,"depth":120,"text":851},false,"md",null,{},"\u002Fbuild-linux-docker",{"title":5,"description":16},"build-linux-docker","doH14q0IZEPM0aWRoGfOPVU5RhUEDvIubW7eWrGrQ2g",1780198563090]