AMD64 (x86-64) の OS で NuxtJS のアプリケーションを Docker でビルドすると正常に完了します。一方で、Raspberry Pi に arm64 の OS をインストールして同様のことをしようとすると下記のようなエラーとなりビルドができません。具体的には、Intel CPU PC にインストールした Ubuntu 20.04 (amd64) ではビルドが正常に完了した Dockerfile が、Raspberry Pi 4 の Ubuntu 20.04 (arm64) ではビルドできませんでした。
[4/4] Building fresh packages...
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
error /usr/src/app/node_modules/deasync: Command failed.
Exit code: 1
Command: node ./build.js
Arguments:
Directory: /usr/src/app/node_modules/deasync
Output:
gyp info it worked if it ends with ok
gyp info using node-gyp@5.1.0
gyp info using node@14.17.5 | linux | arm64
gyp ERR! find Python
gyp ERR! find Python Python is not set from command line or npm configuration
gyp ERR! find Python Python is not set from environment variable PYTHON
gyp ERR! find Python checking if "python" can be used
gyp ERR! find Python - "python" is not in PATH or produced an error
gyp ERR! find Python checking if "python2" can be used
gyp ERR! find Python - "python2" is not in PATH or produced an error
gyp ERR! find Python checking if "python3" can be used
gyp ERR! find Python - "python3" is not in PATH or produced an error
gyp ERR! find Python
gyp ERR! find Python **********************************************************
gyp ERR! find Python You need to install the latest version of Python.
gyp ERR! find Python Node-gyp should be able to find and use Python. If not,
gyp ERR! find Python you can try one of the following options:
gyp ERR! find Python - Use the switch --python="/path/to/pythonexecutable"
gyp ERR! find Python (accepted by both node-gyp and npm)
gyp ERR! find Python - Set the environment variable PYTHON
gyp ERR! find Python - Set the npm configuration variable python:
gyp ERR! find Python npm config set python "/path/to/pythonexecutable"
gyp ERR! find Python For more information consult the documentation at:
gyp ERR! find Python https://github.com/nodejs/node-gyp#installation
gyp ERR! find Python **********************************************************
gyp ERR! find Python
gyp ERR! configure error
gyp ERR! stack Error: Could not find any Python installation to use
gyp ERR! stack at PythonFinder.fail (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:307:47)
gyp ERR! stack at PythonFinder.runChecks (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:136:21)
gyp ERR! stack at PythonFinder.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:179:16)
gyp ERR! stack at PythonFinder.execFileCallback (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:271:16)
gyp ERR! stack at exithandler (child_process.js:397:5)
gyp ERR! stack at ChildProcess.errorhandler (child_process.js:409:5)
gyp ERR! stack at ChildProcess.emit (events.js:400:28)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
gyp ERR! stack at onErrorNT (internal/child_process.js:467:16)
gyp ERR! stack at processTicksAndRejections (internal/process/task_queues.js:82:21)
gyp ERR! System Linux 5.4.0-1042-raspi
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/src/app/node_modules/deasync
gyp ERR! node -v v14.17.5
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
Build failed
The command '/bin/sh -c yarn install --prefer-offline --frozen-lockfile --non-interactive --production=false' returned a non-zero code: 1
なお、Raspberry Pi 4 にインストールした Ubuntu 20.04 は、下記の Ubuntu のサイトの 64bit のものです。
Ubuntu
Ubuntu is an open-source operating system for cross-platform…
Dockerfile は下記のようなものです。Raspberry Pi の Ubuntu 20.04 (arm64) ではビルドに失敗します。
FROM node:14-slim as builder
WORKDIR /usr/src/app
COPY . .
RUN yarn install \
--prefer-offline \
--frozen-lockfile \
--non-interactive \
--production=false
...
これを解決するためには、Ubuntu 20.04 (arm64) の場合は yarn install を実行する前に python, make, g++ パッケージをインストールしておく必要があります。
FROM node:14-slim as builder
# Required on Raspberry Pi (arm64) only
RUN apt-get update && apt-get install -y python make g++
WORKDIR /usr/src/app
COPY . .
RUN yarn install \
--prefer-offline \
--frozen-lockfile \
--non-interactive \
--production=false
GitHub
I'm trying to follow the getting-started tutorial on a Raspb…