From 8c26af0268f93cb837ae8fd2513ec64f7ca7fc34 Mon Sep 17 00:00:00 2001 From: John Blackbourn Date: Fri, 6 May 2022 17:25:34 +0000 Subject: [PATCH] Build/Test Tools: Allow the local development environment to run on Apple M1 machines without requiring local configuration changes. The `amd64/mysql` and `amd64/mariadb` official images from Docker are compatible with x86 running on the ARM64v8 architecture of M1 machines. Merges [53358] to the 6.0 branch. Fixes #52356 git-svn-id: https://develop.svn.wordpress.org/branches/6.0@53359 602fd350-edb4-49c9-b593-d223f7449a82 --- tools/local-env/scripts/docker.js | 4 ++++ tools/local-env/scripts/install.js | 4 ++++ tools/local-env/scripts/start.js | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/tools/local-env/scripts/docker.js b/tools/local-env/scripts/docker.js index fed70aeb59..b8f9d2cf66 100644 --- a/tools/local-env/scripts/docker.js +++ b/tools/local-env/scripts/docker.js @@ -4,5 +4,9 @@ const { execSync } = require( 'child_process' ); dotenvExpand.expand( dotenv.config() ); +if ( process.arch === 'arm64' ) { + process.env.LOCAL_DB_TYPE = `amd64/${process.env.LOCAL_DB_TYPE}`; +} + // Execute any docker-compose command passed to this script. execSync( 'docker-compose ' + process.argv.slice( 2 ).join( ' ' ), { stdio: 'inherit' } ); diff --git a/tools/local-env/scripts/install.js b/tools/local-env/scripts/install.js index c17bbce887..223a0fa2a6 100644 --- a/tools/local-env/scripts/install.js +++ b/tools/local-env/scripts/install.js @@ -6,6 +6,10 @@ const { renameSync, readFileSync, writeFileSync } = require( 'fs' ); dotenvExpand.expand( dotenv.config() ); +if ( process.arch === 'arm64' ) { + process.env.LOCAL_DB_TYPE = `amd64/${process.env.LOCAL_DB_TYPE}`; +} + // Create wp-config.php. wp_cli( 'config create --dbname=wordpress_develop --dbuser=root --dbpass=password --dbhost=mysql --path=/var/www/src --force' ); diff --git a/tools/local-env/scripts/start.js b/tools/local-env/scripts/start.js index df52f6db80..9f4fb849db 100644 --- a/tools/local-env/scripts/start.js +++ b/tools/local-env/scripts/start.js @@ -4,6 +4,10 @@ const { execSync } = require( 'child_process' ); dotenvExpand.expand( dotenv.config() ); +if ( process.arch === 'arm64' ) { + process.env.LOCAL_DB_TYPE = `amd64/${process.env.LOCAL_DB_TYPE}`; +} + // Start the local-env containers. execSync( 'docker-compose up -d wordpress-develop', { stdio: 'inherit' } );