{"id":3662,"date":"2024-07-11T14:44:51","date_gmt":"2024-07-11T12:44:51","guid":{"rendered":"https:\/\/www.robinglauser.ch\/blog\/?p=3662"},"modified":"2024-07-11T14:46:35","modified_gmt":"2024-07-11T12:46:35","slug":"troubleshooting-docker-android-builds-on-arm-macs","status":"publish","type":"post","link":"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/","title":{"rendered":"Troubleshooting Docker Android Builds on ARM Macs:"},"content":{"rendered":"<h2 id=\"the-initial-setup\">The Initial Setup<\/h2>\n<p>I started by using Claude, an AI assistant, to generate the necessary Docker and build script files for my Android project. Claude provided a comprehensive setup that included:<\/p>\n<ol>\n<li>A Dockerfile to create the build environment<\/li>\n<li>A shell script to run the build process inside the Docker container<\/li>\n<li>A script to set up and run everything<\/li>\n<\/ol>\n<p>The initial scripts looked promising, and I was excited to get started.<\/p>\n<h2 id=\"the-first-hurdle\">The First Hurdle<\/h2>\n<p>After setting up the files and running the build script, I encountered my first error:<\/p>\n<pre><code><span class=\"hljs-keyword\">Error: <\/span>Could not determine SDK root.\r\n<span class=\"hljs-keyword\">Error: <\/span>Either specify it explicitly with --sdk_root= or move this package into its expected location: &lt;sdk&gt;\/cmdline-tools\/latest\/\r\n<\/code><\/pre>\n<p>This error suggested that the Android SDK wasn&#8217;t set up correctly in the Docker image. Claude helped me adjust the Dockerfile to properly set up the SDK directory structure.<\/p>\n<h2 id=\"digging-deeper\">Digging Deeper<\/h2>\n<p>After resolving the SDK root issue, I hit another roadblock:<\/p>\n<pre><code><span class=\"hljs-literal\">Warning<\/span>: Dependant <span class=\"hljs-keyword\">package<\/span> <span class=\"hljs-keyword\">with<\/span> key emulator <span class=\"hljs-keyword\">not<\/span> found!\r\n<span class=\"hljs-literal\">Warning<\/span>: Unable <span class=\"hljs-keyword\">to<\/span> compute a complete list <span class=\"hljs-keyword\">of<\/span> dependencies.\r\n<\/code><\/pre>\n<p>This error occurred when trying to install the necessary SDK components. We tried various approaches, including installing components one by one and adding the emulator package explicitly.<\/p>\n<h2 id=\"the-breakthrough\">The Breakthrough<\/h2>\n<p>Despite these adjustments, the build process was still failing. It was at this point that I had a realization \u2013 <strong>I was running this on an ARM-based Mac (with an M1 chip). This turned out to be the key to solving the puzzle.<\/strong><\/p>\n<p>The issue wasn&#8217;t with the scripts or the Docker setup per se, but with the architecture mismatch. The Android SDK and many of its tools are primarily designed for x86 architecture, which can cause issues when running on ARM-based systems like the newer Macs.<\/p>\n<h2 id=\"the-solution\">The Solution<\/h2>\n<p>Armed with this knowledge, I asked Claude to modify the setup to account for ARM-based Macs. The solution involved two key changes:<\/p>\n<ol>\n<li>Using the <code>--platform=linux\/amd64<\/code> flag in the Dockerfile to ensure we&#8217;re using the x86_64 version of the image.<\/li>\n<li>Adding the same flag when building and running the Docker container.<\/li>\n<\/ol>\n<p>Here&#8217;s a snippet of the updated Dockerfile:<\/p>\n<pre><code class=\"lang-dockerfile\">FROM <span class=\"hljs-comment\">--platform=linux\/amd64 openjdk:11-jdk<\/span>\r\n\r\n<span class=\"hljs-comment\"># Rest of the Dockerfile remains the same<\/span>\r\n<\/code><\/pre>\n<p>And the updated run script:<\/p>\n<pre><code class=\"lang-bash\"><span class=\"hljs-meta\">#!\/bin\/bash\r\n<\/span>\r\n<span class=\"hljs-comment\"># Build the Docker image<\/span>\r\ndocker build --platform linux\/amd64 -t android-build .\r\n\r\n<span class=\"hljs-comment\"># Run the Docker container<\/span>\r\ndocker run --rm --platform linux\/amd64 -v $(<span class=\"hljs-built_in\">pwd<\/span>):\/app android-build\r\n<\/code><\/pre>\n<p>These changes tell Docker to use the x86_64 version of the image, which is then emulated on ARM machines using Docker&#8217;s built-in emulation capabilities.<\/p>\n<h2 id=\"lessons-learned\">Lessons Learned<\/h2>\n<p>This experience taught me several valuable lessons:<\/p>\n<ol>\n<li><strong>Always consider the underlying architecture<\/strong>: When setting up development environments, especially in containerized settings, it&#8217;s crucial to consider the architecture of both the host machine and the target environment.<\/li>\n<li><strong>Docker&#8217;s emulation capabilities are powerful<\/strong>: Docker&#8217;s ability to run x86_64 images on ARM architecture is impressive and can be a lifesaver in situations like this.<\/li>\n<li><strong>Persistence pays off<\/strong>: Debugging can be frustrating, but persistence and methodical investigation usually lead to a solution.<\/li>\n<li><strong>AI assistants can be valuable partners<\/strong>: While Claude couldn&#8217;t immediately identify the ARM-specific issue, it was instrumental in quickly generating and modifying scripts, allowing me to focus on problem-solving.<\/li>\n<li><strong>Let Claude generate a bash script that creates all files:\u00a0<\/strong>As Claude can&#8217;t yet generate multiple files to download \/ create in one go, it&#8217;s a good trick to let Claude generate a bash script that when run generates all the needed files.<em> (The generated script is at the end of this post)<\/em><\/li>\n<li><strong>Use Claude to quickly generate container scripts so you can start legacy projects much faster.\u00a0<\/strong>Claude picks up on things like Node version, Android SDK Version by providing the build file or other configuration files.<\/li>\n<\/ol>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>Setting up a Docker environment for Android builds on an ARM-based Mac presented some unique challenges, but the process of discovering and resolving these issues was incredibly educational. By understanding the architectural differences and leveraging Docker&#8217;s platform-specific options, we were able to create a solution that works across different architectures.<\/p>\n<p>Remember, if you&#8217;re facing similar issues, consider the architecture of your machine and don&#8217;t hesitate to use platform-specific Docker options. Happy building!<\/p>\n<p><strong>The whole script which generates all the files needed to build and run the container:<\/strong><\/p>\n<pre>#!\/bin\/bash\r\n\r\n# Create Dockerfile\r\ncat &lt;&lt; EOF &gt; Dockerfile\r\nFROM --platform=linux\/amd64 openjdk:11-jdk\r\n\r\n# Install necessary tools\r\nRUN apt-get update &amp;&amp; apt-get install -y wget unzip\r\n\r\n# Set up environment variables\r\nENV ANDROID_HOME \/usr\/local\/android-sdk\r\nENV PATH \\${PATH}:\\${ANDROID_HOME}\/cmdline-tools\/latest\/bin:\\${ANDROID_HOME}\/platform-tools\r\n\r\n# Download and install Android SDK\r\nRUN mkdir -p \\${ANDROID_HOME} &amp;&amp; cd \\${ANDROID_HOME} &amp;&amp; \\\r\n    wget -q https:\/\/dl.google.com\/android\/repository\/commandlinetools-linux-8512546_latest.zip &amp;&amp; \\\r\n    unzip commandlinetools-linux-8512546_latest.zip &amp;&amp; \\\r\n    rm commandlinetools-linux-8512546_latest.zip &amp;&amp; \\\r\n    mkdir -p cmdline-tools\/latest &amp;&amp; \\\r\n    mv cmdline-tools\/bin cmdline-tools\/latest\/ &amp;&amp; \\\r\n    mv cmdline-tools\/lib cmdline-tools\/latest\/ &amp;&amp; \\\r\n    mv cmdline-tools\/NOTICE.txt cmdline-tools\/latest\/ &amp;&amp; \\\r\n    mv cmdline-tools\/source.properties cmdline-tools\/latest\/ &amp;&amp; \\\r\n    rm -rf cmdline-tools\/README.txt\r\n\r\n# Accept licenses\r\nRUN yes | \\${ANDROID_HOME}\/cmdline-tools\/latest\/bin\/sdkmanager --sdk_root=\\${ANDROID_HOME} --licenses\r\n\r\n# Install necessary SDK components\r\nRUN \\${ANDROID_HOME}\/cmdline-tools\/latest\/bin\/sdkmanager --sdk_root=\\${ANDROID_HOME} \"platform-tools\" \"platforms;android-30\" \"build-tools;30.0.3\"\r\n\r\n# Set the working directory\r\nWORKDIR \/app\r\n\r\n# Copy your project files\r\nCOPY . .\r\n\r\n# Make gradlew executable\r\nRUN chmod +x .\/gradlew\r\n\r\n# Copy the build script\r\nCOPY docker-build-debug.sh \/app\/docker-build-debug.sh\r\nRUN chmod +x \/app\/docker-build-debug.sh\r\n\r\n# Set the entry point\r\nENTRYPOINT [\"\/app\/docker-build-debug.sh\"]\r\nEOF\r\n\r\n# Create docker-build-debug.sh\r\ncat &lt;&lt; EOF &gt; docker-build-debug.sh\r\n#!\/bin\/bash\r\n\r\n# Navigate to the project directory\r\ncd \/app\r\n\r\n# Clean the project\r\n.\/gradlew clean\r\n\r\n# Build debug APK for all flavors\r\n.\/gradlew assembleDebug\r\n\r\necho \"Debug build completed. APKs can be found in the 'app\/build\/outputs\/apk\/debug' directory.\"\r\nEOF\r\n\r\n# Create run-docker-build.sh\r\ncat &lt;&lt; EOF &gt; run-docker-build.sh\r\n#!\/bin\/bash\r\n\r\n# Build the Docker image\r\ndocker build --platform linux\/amd64 -t android-build .\r\n\r\n# Run the Docker container\r\ndocker run --rm --platform linux\/amd64 -v \\$(pwd):\/app android-build\r\nEOF\r\n\r\n# Make scripts executable\r\nchmod +x docker-build-debug.sh run-docker-build.sh\r\n\r\necho \"Setup complete. Created Dockerfile, docker-build-debug.sh, and run-docker-build.sh\"\r\necho \"To build your project, run: .\/run-docker-build.sh\"<\/pre>\n<p><small>Written by BFF Claude &amp; Me<\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<p class=\"excerpt\">The Initial Setup I started by using Claude, an AI assistant, to generate the necessary Docker and build script files for my Android project. Claude provided a comprehensive setup that included: A Dockerfile to create the build environment A shell script to run the build process inside the Docker container A script to set up and run everything The initial &#8230; <a class=\"read-more\" href=\"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/\">Read More<\/a><\/p>\n","protected":false},"author":2,"featured_media":3671,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[45],"tags":[],"class_list":["post-3662","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Troubleshooting Docker Android Builds on ARM Macs: - Robin Glauser<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Troubleshooting Docker Android Builds on ARM Macs: - Robin Glauser\" \/>\n<meta property=\"og:description\" content=\"The Initial Setup I started by using Claude, an AI assistant, to generate the necessary Docker and build script files for my Android project. Claude provided a comprehensive setup that included: A Dockerfile to create the build environment A shell script to run the build process inside the Docker container A script to set up and run everything The initial ... Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/\" \/>\n<meta property=\"og:site_name\" content=\"Robin Glauser\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-11T12:44:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-11T12:46:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2024\/07\/androiddocker.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1792\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Robin Glauser\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@robinglauser\" \/>\n<meta name=\"twitter:site\" content=\"@robinglauser\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Robin Glauser\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/\"},\"author\":{\"name\":\"Robin Glauser\",\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19\"},\"headline\":\"Troubleshooting Docker Android Builds on ARM Macs:\",\"datePublished\":\"2024-07-11T12:44:51+00:00\",\"dateModified\":\"2024-07-11T12:46:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/\"},\"wordCount\":642,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19\"},\"image\":{\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2024\/07\/androiddocker.jpg\",\"articleSection\":[\"Development\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/\",\"url\":\"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/\",\"name\":\"Troubleshooting Docker Android Builds on ARM Macs: - Robin Glauser\",\"isPartOf\":{\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2024\/07\/androiddocker.jpg\",\"datePublished\":\"2024-07-11T12:44:51+00:00\",\"dateModified\":\"2024-07-11T12:46:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/#primaryimage\",\"url\":\"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2024\/07\/androiddocker.jpg\",\"contentUrl\":\"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2024\/07\/androiddocker.jpg\",\"width\":1792,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.robinglauser.ch\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Troubleshooting Docker Android Builds on ARM Macs:\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/#website\",\"url\":\"https:\/\/www.robinglauser.ch\/blog\/\",\"name\":\"Robin Glauser\",\"description\":\"My Blog about Development, Design and my random thoughts.\",\"publisher\":{\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.robinglauser.ch\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19\",\"name\":\"Robin Glauser\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg\",\"url\":\"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg\",\"contentUrl\":\"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg\",\"width\":800,\"height\":530,\"caption\":\"Robin Glauser\"},\"logo\":{\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg\"},\"description\":\"I'm a web developer.\",\"sameAs\":[\"https:\/\/www.robinglauser.ch\",\"https:\/\/www.instagram.com\/robinglauser\/\",\"https:\/\/x.com\/robinglauser\"],\"url\":\"https:\/\/www.robinglauser.ch\/blog\/author\/robin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Troubleshooting Docker Android Builds on ARM Macs: - Robin Glauser","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/","og_locale":"en_US","og_type":"article","og_title":"Troubleshooting Docker Android Builds on ARM Macs: - Robin Glauser","og_description":"The Initial Setup I started by using Claude, an AI assistant, to generate the necessary Docker and build script files for my Android project. Claude provided a comprehensive setup that included: A Dockerfile to create the build environment A shell script to run the build process inside the Docker container A script to set up and run everything The initial ... Read More","og_url":"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/","og_site_name":"Robin Glauser","article_published_time":"2024-07-11T12:44:51+00:00","article_modified_time":"2024-07-11T12:46:35+00:00","og_image":[{"width":1792,"height":1024,"url":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2024\/07\/androiddocker.jpg","type":"image\/jpeg"}],"author":"Robin Glauser","twitter_card":"summary_large_image","twitter_creator":"@robinglauser","twitter_site":"@robinglauser","twitter_misc":{"Written by":"Robin Glauser","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/#article","isPartOf":{"@id":"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/"},"author":{"name":"Robin Glauser","@id":"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19"},"headline":"Troubleshooting Docker Android Builds on ARM Macs:","datePublished":"2024-07-11T12:44:51+00:00","dateModified":"2024-07-11T12:46:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/"},"wordCount":642,"commentCount":0,"publisher":{"@id":"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19"},"image":{"@id":"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/#primaryimage"},"thumbnailUrl":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2024\/07\/androiddocker.jpg","articleSection":["Development"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/","url":"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/","name":"Troubleshooting Docker Android Builds on ARM Macs: - Robin Glauser","isPartOf":{"@id":"https:\/\/www.robinglauser.ch\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/#primaryimage"},"image":{"@id":"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/#primaryimage"},"thumbnailUrl":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2024\/07\/androiddocker.jpg","datePublished":"2024-07-11T12:44:51+00:00","dateModified":"2024-07-11T12:46:35+00:00","breadcrumb":{"@id":"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/#primaryimage","url":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2024\/07\/androiddocker.jpg","contentUrl":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2024\/07\/androiddocker.jpg","width":1792,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/www.robinglauser.ch\/blog\/2024\/07\/11\/troubleshooting-docker-android-builds-on-arm-macs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.robinglauser.ch\/blog\/"},{"@type":"ListItem","position":2,"name":"Troubleshooting Docker Android Builds on ARM Macs:"}]},{"@type":"WebSite","@id":"https:\/\/www.robinglauser.ch\/blog\/#website","url":"https:\/\/www.robinglauser.ch\/blog\/","name":"Robin Glauser","description":"My Blog about Development, Design and my random thoughts.","publisher":{"@id":"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.robinglauser.ch\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19","name":"Robin Glauser","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg","url":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg","contentUrl":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg","width":800,"height":530,"caption":"Robin Glauser"},"logo":{"@id":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg"},"description":"I'm a web developer.","sameAs":["https:\/\/www.robinglauser.ch","https:\/\/www.instagram.com\/robinglauser\/","https:\/\/x.com\/robinglauser"],"url":"https:\/\/www.robinglauser.ch\/blog\/author\/robin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/posts\/3662","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/comments?post=3662"}],"version-history":[{"count":5,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/posts\/3662\/revisions"}],"predecessor-version":[{"id":3669,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/posts\/3662\/revisions\/3669"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/media\/3671"}],"wp:attachment":[{"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/media?parent=3662"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/categories?post=3662"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/tags?post=3662"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}