1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Docker上にTruffle環境を構築する

Posted at

はじめに

Docker上にTruffle環境を構築します。
Ganacheと連携させるとコントラクトの履歴やStorageの中身を見ることが出来るようになるので、同じ環境に作成していきたいと思います。
Docker上にGanache環境を構築する方法はこちら

バージョン

※執筆時点の筆者の環境です
・Docker: 20.10.8
・Ubuntu: 20.04
・Ganache: 2.5.4
・Truffle: 5.4.9
・Node.js: 14.17.4
・npm: 6.14.14

手順

1.Truffleのインストール
※Ganacheとの連携まで載せたかったですが、ボリュームが微妙なので、続きは次回の記事にて。

1.Truffleのインストール

前回Ganacheの環境を構築した際はリモートデスクトップでGUIにて操作していましたが、今回はターミナルからアクセスします。

Gancahe環境のコンテナを起動

※起動済みの場合は飛ばしてください。
-iオプション付与で、起動と同時にターミナルに入ります。

docker start -i コンテナ名

Node.jsをインストール

※ここは割愛させていただきますが、私はnvmをインストールして上記バージョンのNode.jsを入れました。

Truffleのインストール

公式の手順に従い、インストールしていきます。
といってもnpm installするくらいですが。

npm install -g truffle

公式にも下記記載がありますが、NodeJSのバージョンが古いとインストールできないので、気を付けてください。

NodeJS v8.9.4 or later

インストールが終わるまでには少し時間がかかります。
しばらくすると、、、

> node-gyp-build

sh: 1: node-gyp-build: Permission denied
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.2 (node_modules/truffle/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/truffle/node_modules/watchpack-chokidar2/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.1.2 (node_modules/truffle/node_modules/mocha/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: iso-constants@0.1.2 (node_modules/truffle/node_modules/iso-constants):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: iso-constants@0.1.2 install: `node build.js > index.browser.js`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: spawn ENOENT

npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! bufferutil@4.0.3 install: `node-gyp-build`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the bufferutil@4.0.3 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-09-03T14_06_42_625Z-debug.log

見事にエラーがでました。。。

本エラーに関しては下記記事にまとめさせていただきました。
※ちょっと理解が怪しいところもありますが、詳細はこちらを参照してください。
Truffleのインストールに失敗する

簡単に言うと、rootユーザーでnode-gyp-buildやっちゃだめよ。
rootでやるなら許可してあげてね。って感じです。
ということで、下記コマンドでrootユーザーを許可してあげます。

npm config set unsafe-perm true

再度npm install -g truffleを叩くと、無事Truffleがインストールされると思います。

バージョンを確認してみて、ひとまず終了です。

# truffle --version
Truffle v5.4.9 - a development framework for Ethereum

おわりに

筆者はLinuxを普段触らないため、rootの権限周りで結構詰まりましたが、
解決すればすんなりインストールできるかと思います!
次回はコントラクトの作成やGanacheとの連携部分を書けたらなと思います。

以上ですー。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?