devcontainers-contrib / features

🐳 Extra add-in features for Devcontainers and GitHub Codespaces
MIT License
224 stars 116 forks source link

[Feature Request]: MySQL on ARM/Macbook M1 #464

Open tonywei92 opened 1 year ago

tonywei92 commented 1 year ago

Requested Feature

Currently, if I install MySQL (Homebrew) feature on MacBook M1, it will have an error:

Architecture aarch64 unsupported

So it would be nice to have the MySQL version with ARM/M1 support.

Full error:

#0 0.120 ===========================================================================
#0 0.120 Feature       : MySQL (via Homebrew)
#0 0.120 Description   : MySQL is an open-source relational database management system (RDBMS)
#0 0.120 Id  
[2023-06-24T06:45:40.682Z]           : ghcr.io/devcontainers-contrib/features/mysql-homebrew
#0 0.120 Version       : 1.0.18
#0 0.120 Documentation : http://github.com/devcontainers-contrib/features/tree/main/src/mysql-homebrew
#0 0.120 Options       :
#0 0.120     VERSION="latest"
#0 0.120 ===========================================================================
#0 0.122 bash: cannot set terminal process group (1): Inappropriate ioctl for device
#0 0.122 bash: no job control in this shell
#0 3.265 nanolayer
#0 8.282 cd /tmp/tmp9ik8okqd && chmod +x -R . && _REMOTE_USER="vscode" _REMOTE_USER_HOME="/home/vscode" PACKAGE="mysql" VERSION="latest" INSTALLATION_FLAGS="" NANOLAYER_VERBOSE="" NANOLAYER_FORCE_CLI_INSTALLATION="" NANOLAYER_PROPAGATE_CLI_LOCATION="1" NANOLAYER_CLI_LOCATION="/tmp/nanolayer-1MGh3iyOTl/nanolayer" bash  -i  +H ./install.sh
#0 8.282 + source ./library_scripts.sh

#0 8.283 + PACKAGE=mysql

#0 8.283 + VERSION=latest

#0 8.283 + INSTALLATION_FLAGS=

#0 8.283 + '[' -z mysql ']'

#0 8.284 ++ id 
[2023-06-24T06:45:40.682Z] -u

#0 8.288 + '[' 0 -ne 0 ']'

#0 8.288 + install_via_homebrew mysql latest ''

#0 8.288 + package=mysql

#0 8.288 + version=latest

#0 8.288 + installation_flags=

#0 8.288 + type brew

#0 8.288 + echo 'Installing Homebrew...'

#0 8.288 Installing Homebrew...

#0 8.288 + ensure_nanolayer nanolayer_location v0.4.29

#0 8.288 + local variable_name=nanolayer_location

#0 8.288 + local required_version=v0.4.29

#0 8.288 + [[ v0.4.29 == v* ]]

#0 8.288 + local nanolayer_location=

#0 8.288 + [[ -z '' ]]

#0 8.288 + [[ -z /tmp/nanolayer-1MGh3iyOTl/nanolayer ]]

#0 8.288 + '[' -f /tmp/nanolayer-1MGh3iyOTl/nanolayer ']'

#0 8.288 + '[' -x /tmp/nanolayer-1MGh3iyOTl/nanolayer ']'

#0 8.288 + nanolayer_location=/tmp/nanolayer-1MGh3iyOTl/nanolayer

#0 8.288 + echo 'Found a pre-existing nanolayer which were given in env varialbe: /tmp/nanolayer-1MGh3iyOTl/nanolayer'

#0 8.288 Found a pre-existing nanolayer which were given in env varialbe: /tmp/nanolayer-1MGh3iyOTl/nanolayer

#0 8.288 + [[ -z /tmp/n
[2023-06-24T06:45:40.682Z] anolayer-1MGh3iyOTl/nanolayer ]]

#0 8.288 + local current_version

#0 8.288 ++ /tmp/nanolayer-1MGh3iyOTl/nanolayer --version

#0 8.432 + current_version=0.4.39

#0 8.432 + [[ 0.4.39 == v* ]]

#0 8.432 + current_version=v0.4.39

#0 8.432 + '[' v0.4.39 == v0.4.29 ']'

#0 8.432 + echo 'skipping usage of pre-existing nanolayer. (required version v0.4.29 does not match existing version v0.4.39)'

#0 8.432 skipping usage of pre-existing nanolayer. (required version v0.4.29 does not match existing version v0.4.39)

#0 8.432 + nanolayer_location=

#0 8.432 + [[ -z '' ]]

#0 8.432 ++ uname -sm

#0 8.433 + '[' 'Linux aarch64' == 'Linux x86_64' ']'

#0 8.434 ++ uname -sm

#0 8.435 + '[' 'Linux aarch64' == 'Linux aarch64' ']'

#0 8.435 ++ mktemp -d -t nanolayer-XXXXXXXXXX

#0 8.436 + tmp_dir=/tmp/nanolayer-iUJ43VETYF

#0 8.436 + trap clean_up EXIT

#0 8.436 + '[' -x /sbin/apk ']'

#0 8.436 + clib_type=gnu

#0 8.437 ++ uname -m

#0 8.438 + tar_filename=nanolayer-aarch64-unknown-linux-gnu.tgz

#0 8.4
[2023-06-24T06:45:40.683Z] 38 + clean_download https://github.com/devcontainers-contrib/cli/releases/download/v0.4.29/nanolayer-aarch64-unknown-linux-gnu.tgz /tmp/nanolayer-iUJ43VETYF/nanolayer-aarch64-unknown-linux-gnu.tgz

#0 8.438 + url=https://github.com/devcontainers-contrib/cli/releases/download/v0.4.29/nanolayer-aarch64-unknown-linux-gnu.tgz

#0 8.438 + output_location=/tmp/nanolayer-iUJ43VETYF/nanolayer-aarch64-unknown-linux-gnu.tgz

#0 8.438 ++ mktemp -d

#0 8.439 + tempdir=/tmp/tmp.K1iZinpDRm

#0 8.439 + downloader_installed=

#0 8.439 + type curl

#0 8.440 + downloader=curl

#0 8.440 + '[' -z curl ']'

#0 8.440 + '[' curl = wget ']'

#0 8.440 + curl -sfL https://github.com/devcontainers-contrib/cli/releases/download/v0.4.29/nanolayer-aarch64-unknown-linux-gnu.tgz -o /tmp/nanolayer-iUJ43VETYF/nanolayer-aarch64-unknown-linux-gnu.tgz

#0 11.80 + '[' -z ']'

#0 11.80 + tar xfzv /tmp/nanolayer-iUJ43VETYF/nanolayer-aarch64-unknown-linux-gnu.tgz -C /tmp/nanolayer-iUJ43VETYF

#0 11.80 nanolayer

#0 12.24 + chmod a+x /t
[2023-06-24T06:45:40.683Z] mp/nanolayer-iUJ43VETYF/nanolayer

#0 12.24 + nanolayer_location=/tmp/nanolayer-iUJ43VETYF/nanolayer

#0 12.24 + declare -g nanolayer_location=/tmp/nanolayer-iUJ43VETYF/nanolayer

#0 12.24 + /tmp/nanolayer-iUJ43VETYF/nanolayer install devcontainer-feature ghcr.io/meaningful-ooo/devcontainer-features/homebrew:2.0.3 --option shallow_clone=true --option update=true

#0 16.55 cd /tmp/tmpve1ofyit && chmod +x -R . && _REMOTE_USER="vscode" _REMOTE_USER_HOME="/home/vscode" SHALLOW_CLONE="true" UPDATE="true" SHALLOWCLONE="false" NANOLAYER_VERBOSE="" NANOLAYER_FORCE_CLI_INSTALLATION="" NANOLAYER_PROPAGATE_CLI_LOCATION="1" NANOLAYER_CLI_LOCATION="/tmp/nanolayer-1MGh3iyOTl/nanolayer" bash  -i  +H ./install.sh

#0 16.57 (!) Architecture aarch64 unsupported

#0 16.61 Traceback (most recent call last):

#0 16.61   File "<string>", line 1, in <module>

#0 16.61   File "nanolayer.__main__", line 50, in main
[2023-06-24T06:45:40.683Z] #0 16.61   File "typer.main", line 328, in __call__

#0 16.61   File "typer.main", line 311, in __call__

#0 16.61   File "click.core", line 1130, in __call__

#0 16.61   File "typer.core", line 778, in main

#0 16.61   File "typer.core", line 216, in _main

#0 16.61   File "click.core", line 1657, in invoke

#0 16.61   File "click.core", line 1657, in invoke

#0 16.61   File "click.core", line 1404, in invoke

#0 16.61   File "click.core", line 760, in invoke

#0 16.61   File "typer.main", line 683, in wrapper

#0 16.61   File "nanolayer.cli.install", line 64, in install_devcontainer_feature

#0 16.61   File "nanolayer.installers.devcontainer_feature.oci_feature_installer", line 131, in install

#0 16.61   File "nanolayer.utils.invoker", line 56, in invoke

#0 16.61 nanolayer.utils.invoker.Invoker.InvokerException: The command 'cd /tmp/tmpve1ofyit && chmod +x -R . && _REMOTE_USER="vscode" _REMOTE_USER_HOME="/home/vscode" SHALLOW_CLONE="true" UPDATE="true" SHALLOWCLONE="false" NANOLAYER_VERBOSE="
[2023-06-24T06:45:40.683Z] " NANOLAYER_FORCE_CLI_INSTALLATION="" NANOLAYER_PROPAGATE_CLI_LOCATION="1" NANOLAYER_CLI_LOCATION="/tmp/nanolayer-1MGh3iyOTl/nanolayer" bash  -i  +H ./install.sh' failed. error: Return Code: 1. see logs for details.

#0 16.71 Sentry is attempting to send 2 pending error messages

#0 16.71 Waiting up to 2 seconds
[2023-06-24T06:45:40.683Z] #0 16.71 Press Ctrl-C to quit

#0 16.81 + clean_up

#0 16.81 + ARG=1

#0 16.81 + rm -rf /tmp/nanolayer-iUJ43VETYF

#0 16.83 + exit 1

#0 16.87 Traceback (most recent call last):
#0 16.87   File "<string>", line 1, in <module>
#0 16.87   File "nanolayer.__main__", line 50, in main
#0 16.87   File "typer.main", line 328, in __call__
#0 16.87   File "typer.main", line 311, in __call__
#0 16.87   File "click.core", line 1130, in __call__
#0 16.87   File "typer.core", line 778, in main
#0 16.87   File "typer.core", line 216, in _main
#0 16.87   File "click.core", line 1657, in invoke
#0 16.87   File "click.core", line 1657, in invoke
#0 16.87   File "click.core", line 1404, in invoke
[2023-06-24T06:45:40.683Z] 
#0 16.87   File "click.core", line 760, in invoke
#0 16.87   File "typer.main", line 683, in wrapper
#0 16.87   File "nanolayer.cli.install", line 65, in install_devcontainer_feature
#0 16.87   File "nanolayer.installers.devcontainer_feature.oci_feature_installer", line 134, in install
#0 16.87   File "nanolayer.utils.invoker", line 56, in invoke
#0 16.87 nanolayer.utils.invoker.Invoker.InvokerException: The command 'cd /tmp/tmp9ik8okqd && chmod +x -R . && _REMOTE_USER="vscode" _REMOTE_USER_HOME="/home/vscode" PACKAGE="mysql" VERSION="latest" INSTALLATION_FLAGS="" NANOLAYER_VERBOSE="" NANOLAYER_FORCE_CLI_INSTALLATION="" NANOLAYER_PROPAGATE_CLI_LOCATION="1" NANOLAYER_CLI_LOCATION="/tmp/nanolayer-1MGh3iyOTl/nanolayer" bash  -i  +H ./install.sh' failed. error: Return Code: 1. see logs for details.
#0 16.97 Sentry is attempting to send 2 pending error messages
#0 16.97 Waiting up to 2 seconds
#0 16.97 Press Ctrl-C to quit
#0 17.08 ERROR: Feature "MySQL (via Homebrew)" (ghcr.io/devcontainers-contrib/fea
[2023-06-24T06:45:40.683Z] tures/mysql-homebrew) failed to install! Look at the documentation at http://github.com/devcontainers-contrib/features/tree/main/src/mysql-homebrew for help troubleshooting this error.
------
Dockerfile.extended:24
--------------------
  23 |     
  24 | >>> RUN --mount=type=bind,from=dev_containers_feature_content_source,source=mysql-homebrew_4,target=/tmp/build-features-src/mysql-homebrew_4 \
  25 | >>>     cp -ar /tmp/build-features-src/mysql-homebrew_4 /tmp/dev-container-features \
  26 | >>>  && chmod -R 0755 /tmp/dev-container-features/mysql-homebrew_4 \
  27 | >>>  && cd /tmp/dev-container-features/mysql-homebrew_4 \
  28 | >>>  && chmod +x ./devcontainer-features-install.sh \
  29 | >>>  && ./devcontainer-features-install.sh \
  30 | >>>  && rm -rf /tmp/dev-container-features/mysql-homebrew_4
  31 |     
--------------------
ERROR: failed to solve: process "/bin/sh -c cp -ar /tmp/build-features-src/mysql-homebrew_4 /tmp/dev-container-features  && chmod -R 0755 /tmp/dev-container-features
[2023-06-24T06:45:40.684Z] /mysql-homebrew_4  && cd /tmp/dev-container-features/mysql-homebrew_4  && chmod +x ./devcontainer-features-install.sh  && ./devcontainer-features-install.sh  && rm -rf /tmp/dev-container-features/mysql-homebrew_4" did not complete successfully: exit code: 1
[2023-06-24T06:45:40.690Z] Stop (21134 ms): Run: docker buildx build --load --build-context dev_containers_feature_content_source=/var/folders/dm/_fz_0qds5ys81lc_7x3gc5pw0000gn/T/devcontainercli/container-features/0.42.0-1687589114879 --build-arg _DEV_CONTAINERS_BASE_IMAGE=mcr.microsoft.com/devcontainers/base:jammy --build-arg _DEV_CONTAINERS_IMAGE_USER=root --build-arg _DEV_CONTAINERS_FEATURE_CONTENT_SOURCE=dev_container_feature_content_temp --target dev_containers_target_stage -t vsc-metapals-server-lite-78db92461b8c779f2a9953f96619ddf5f314c7481cd33851ba4a7d3aeb6e0b18-features -f /var/folders/dm/_fz_0qds5ys81lc_7x3gc5pw0000gn/T/devcontainercli/container-features/0.42.0-1687589114879/Dockerfile.extended /Users/tonysong/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data/empty-folder
[2023-06-24T06:45:40.690Z] Error: Command failed: docker buildx build --load --build-context dev_containers_feature_content_source=/var/folders/dm/_fz_0qds5ys81lc_7x3gc5pw0000gn/T/devcontainercli/container-features/0.42.0-1687589114879 --build-arg _DEV_CONTAINERS_BASE_IMAGE=mcr.microsoft.com/devcontainers/base:jammy --build-arg _DEV_CONTAINERS_IMAGE_USER=root --build-arg _DEV_CONTAINERS_FEATURE_CONTENT_SOURCE=dev_container_feature_content_temp --target dev_containers_target_stage -t vsc-metapals-server-lite-78db92461b8c779f2a9953f96619ddf5f314c7481cd33851ba4a7d3aeb6e0b18-features -f /var/folders/dm/_fz_0qds5ys81lc_7x3gc5pw0000gn/T/devcontainercli/container-features/0.42.0-1687589114879/Dockerfile.extended /Users/tonysong/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data/empty-folder
[2023-06-24T06:45:40.690Z]     at mte (/Users/tonysong/.vscode/extensions/ms-vscode-remote.remote-containers-0.295.0/dist/spec-node/devContainersSpecCLI.js:2003:3286)
[2023-06-24T06:45:40.690Z]     at IN (/Users/tonysong/.vscode/extensions/ms-vscode-remote.remote-containers-0.295.0/dist/spec-node/devContainersSpecCLI.js:2003:3222)
[2023-06-24T06:45:40.690Z]     at process.processTicksAndRejections (node:internal/process/task_queues:96:5)
[2023-06-24T06:45:40.690Z]     at async Ote (/Users/tonysong/.vscode/extensions/ms-vscode-remote.remote-containers-0.295.0/dist/spec-node/devContainersSpecCLI.js:2020:3660)
[2023-06-24T06:45:40.690Z]     at async Hf (/Users/tonysong/.vscode/extensions/ms-vscode-remote.remote-containers-0.295.0/dist/spec-node/devContainersSpecCLI.js:2020:4775)
[2023-06-24T06:45:40.690Z]     at async Qre (/Users/tonysong/.vscode/extensions/ms-vscode-remote.remote-containers-0.295.0/dist/spec-node/devContainersSpecCLI.js:2151:10371)
[2023-06-24T06:45:40.691Z]     at async Zre (/Users/tonysong/.vscode/extensions/ms-vscode-remote.remote-containers-0.295.0/dist/spec-node/devContainersSpecCLI.js:2151:10112)
[2023-06-24T06:45:40.693Z] Stop (26178 ms): Run: /Applications/Developer Tools/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) --ms-enable-electron-run-as-node /Users/tonysong/.vscode/extensions/ms-vscode-remote.remote-containers-0.295.0/dist/spec-node/devContainersSpecCLI.js up --user-data-folder /Users/tonysong/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-session-data-folder /tmp/devcontainers-9302aed5-9e56-4bf4-b56a-ad42b358c3501687589113508 --workspace-folder /Users/tonysong/Projects/metapals/micro-services/metapals-server-lite --workspace-mount-consistency cached --id-label devcontainer.local_folder=/Users/tonysong/Projects/metapals/micro-services/metapals-server-lite --id-label devcontainer.config_file=/Users/tonysong/Projects/metapals/micro-services/metapals-server-lite/.devcontainer/devcontainer.json --log-level debug --log-format json --config /Users/tonysong/Projects/metapals/micro-services/metapals-server-lite/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --remove-existing-container --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root true
[2023-06-24T06:45:40.693Z] Exit code 1
[2023-06-24T06:45:40.695Z] Command failed: /Applications/Developer Tools/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) --ms-enable-electron-run-as-node /Users/tonysong/.vscode/extensions/ms-vscode-remote.remote-containers-0.295.0/dist/spec-node/devContainersSpecCLI.js up --user-data-folder /Users/tonysong/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-session-data-folder /tmp/devcontainers-9302aed5-9e56-4bf4-b56a-ad42b358c3501687589113508 --workspace-folder /Users/tonysong/Projects/metapals/micro-services/metapals-server-lite --workspace-mount-consistency cached --id-label devcontainer.local_folder=/Users/tonysong/Projects/metapals/micro-services/metapals-server-lite --id-label devcontainer.config_file=/Users/tonysong/Projects/metapals/micro-services/metapals-server-lite/.devcontainer/devcontainer.json --log-level debug --log-format json --config /Users/tonysong/Projects/metapals/micro-services/metapals-server-lite/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --remove-existing-container --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root true
[2023-06-24T06:45:40.695Z] Exit code 1