CentOS7で開発しているnodejsのソースをMacOS Big Sur上のDocker環境に移植しようとしてます。
実行すると下記のエラーが表示されます。
$ docker-compose up --build
/src/node_modules/iconv/lib/iconv.js:30
n-app | if (e.code !== 'MODULE_NOT_FOUND') throw e;
n-app | ^
n-app |
n-app | Error: /src/node_modules/iconv/build/Release/iconv.node: invalid ELF header
n-app | at Object.Module._extensions..node (internal/modules/cjs/loader.js:1250:18)
n-app | at Module.load (internal/modules/cjs/loader.js:1049:32)
n-app | at Function.Module._load (internal/modules/cjs/loader.js:937:14)
n-app | at Module.require (internal/modules/cjs/loader.js:1089:19)
n-app | at require (internal/modules/cjs/helpers.js:73:18)
n-app | at Object.<anonymous> (/src/node_modules/iconv/lib/iconv.js:27:14)
n-app | at Module._compile (internal/modules/cjs/loader.js:1200:30)
n-app | at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
n-app | at Module.load (internal/modules/cjs/loader.js:1049:32)
n-app | at Function.Module._load (internal/modules/cjs/loader.js:937:14)
n-app | npm ERR! code ELIFECYCLE
n-app | npm ERR! errno 1
n-app | npm ERR! sapp@0.0.0 start: node ./bin/www
n-app | npm ERR! Exit status 1
node_module を一旦削除して、npm install したり、 npm rebuild をしても同じでした。
invalid ELF header の対応法を教えて下さい。
よろしくお願いします。
% cat package.json
{ "name": "sapp", "version": "0.0.0", "private": true, "scripts": { "start": "node ./bin/www" }, "dependencies": { "basic-auth-connect": "^1.0.0", "body-parser": "~1.17.1", "config": "^3.2.2", "connect-pg-simple": "^6.0.0", "cookie-parser": "~1.4.3", "csv-parse": "^4.6.3", "date-utils": "^1.2.21", "debug": "~2.6.3", "ejs": "~2.5.6", "express": "~4.15.2", "express-session": "^1.16.2", "fs": "0.0.1-security", "iconv": "^2.3.5", "jconv": "^0.1.5", "json2csv": "^4.5.2", "log4js": "^4.5.1", "morgan": "~1.8.1", "multer": "^1.4.2", "nodemailer": "^6.3.0", "omise": "^0.5.7", "pg-promise": "^9.0.0", "request": "^2.88.0", "request-promise": "^4.2.4", "serve-favicon": "~2.4.2" } }
% cat docker-compose.yml
version: '3' services: postgres: image: postgres:12.3 restart: always environment: TZ: "Asia/Tokyo" POSTGRES_DB: test_db POSTGRES_USER: testuser POSTGRES_PASSWORD: testpass ports: - 5432:5432 volumes: - postdb:/var/lib/postgresql/data - ./postgres/initdb:/docker-entrypoint-initdb.d app: build: context: ./docker/construct_app # Dockerfile保存場所 contextでDockerfileの保存場所を相対パスで指定する dockerfile: Dockerfile-app # Dockerfileファイル名 image: n-app # イメージ名 container_name: n-app # コンテナ名 ports: # ポート接続 - 3000:3000 volumes: # mount workdir - ./sapp:/src command: [sh, -c, npm install && npm start] pgadmin: image: dpage/pgadmin4 restart: always ports: - 8080:80 environment: PGADMIN_DEFAULT_EMAIL: admin@example.com PGADMIN_DEFAULT_PASSWORD: admin volumes: - pgadmin:/var/lib/pgadmin depends_on: # コンテナの依存関係 - postgres mailhog: image: mailhog/mailhog ports: - 8026:8025 - 1025:1025 volumes: postdb: pgadmin:
% cat docker/construct_app/Dockerfile-app
FROM node:14.4.0 # ベースイメージを指定 ENV NODE_ENV="development" # 環境変数設定 WORKDIR /src # 作業ディレクトリ作成&設定
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/24 12:53