Linux用の公式Dockerイメージを公開している事を知りました。LinuxでNode.jsのネイティブモジュールをビルドしましたが、今回はDockerを使った方法にリファクタリングしてみたいと思います。Hubに公開されています。https://hub.docker.com/r/library/amazonlinux/タグの一覧を見てみると、かなり細かくバージョンが切られているようです。使われているので、それに併せて今回はamazonlinux:2017.03.1.20170812を使っていきます。amazonlinux:2017.03.1.20170812ネイティブモジュールをビルドする為のイメージを作成する準備が整ったので早速作っていきます。起動するよう設定されています。次にNode.jsをインストールします。Lambdaでv8.10のランタイムを使いたいので、それに併せて8系の物をインストールします。yarn出力が上記のような形で終われば成功です。ある通り、まさしく今回はネイティブモジュールをビルドするので、これらも一緒にインストールする必要があります。0:3.28.3-8.41.amzn1Complete!無事インストールされました。Node.jsは8.11がインストールされましたが、おそらく問題ないでしょう。それでは、早速ネイティブモジュールのインストールをしてみたいと思います。前回と同様、iconvをインストールします。6.425s無事インストールができたみたいです。iconvの場合、ビルド成果物はnode_modules/iconv/build/Release/iconv.node以下に配置されるのですが、きちんとできています。node_modules/iconv/build/Release/iconv.node(当然ですが)一致しました!大成功です。因みに、詳細は省きますが実際にLambda上にデプロイしても動作しました👍コンテナの再利用さて、無事ミッションに成功した所で、コンテナを今後も再利用していく為に、イメージ化していきたい所です。ボリュームマウントした状態で実行します。10.784s無事作られました。216d4e9181fc621c4500e1a6760f9e3fおわりにいかがでしたでしょうか。今回は、(今更ながら)Dockerがアプリケーションの実行環境だけでなく、特定の環境に向けてのコンパイル環境としても有用と言う事が分かりました。今後も是非活用していきたいと思います。優秀な技術者と一緒に、好きな場所で働きませんか株式会社もばらぶでは、優秀で意欲に溢れる方を常に求めています。働く場所は自由、働く時間も柔軟に選択可能です。現在、以下の職種を募集中です。ご興味のある方は、リンク先をご参照下さい。採用情報プロジェクトマネージャー(リモート)ソフトウェアエンジニア(リモート)デザイナー(リモート)Subscriptionメールアドレスを記入して購読すれば、更新をメールで受信できます。ThemePacific。