ちょっとnodejsを試したいときにdockerで環境を作る

最近ubuntu20.04にしてから、ホスト側にnodejsを入れずにどこまでいけるのかというのを試しています。

nodejsに限った話ではないのですが、言語の環境を作りたいときにそれぞれの言語のバージョン管理システムを入れるのが邪魔くさいという問題があったからです。

せっかくLinuxディストリビューションを使っているのだから、dockerを使ったほうが楽になりそうだということで、最小限の環境を作るのにどうやったら楽になるのかを考えてみました。

手順

  1. 作業ディレクトリを作成

    mkdir sandbox cd sandbox

  2. docker-composeを作る

    ``` version: '3' services: app: image: node volumes:

       - .:/app
     working_dir: /app
    

    ```

  3. dockerコンテナでbashを立ち上げる

    sudo docker-compose run -u $(id -u $USER):$(id -g $USER) app bash

  4. npm init

    npm init -y

使い方

ホスト側でファイルを編集して、実行はdockerコンテナ上でします。

そのためにホストのカレントディレクトリをマウントしておきます。

docker-compose run-u オプションをつけておかないとコンテナ上でファイルを作った場合にrootユーザーで作られるので、ホスト側のユーザーのidとあわせます。

おわりに

とりあえず触ってみたいときにさっと環境を作る方法について紹介しました。

ただしこれは最小構成です。

これで環境構成が事足りるということは無いので、ここからいろいろ足していくことになると思います。

例えばmysqlservice に足したり、 ports の設定を足したり、.env の設定を足したりなどなどです。

そういうときに、どう書くのかいつも忘れるので docker-composeのリファレンスも貼っておきます。

docs.docker.com

ノシ