この記事の目標
dockerのコンテナ立ち上げて、このアプリ↓をローカル環境で立ち上げる
https://github.com/justadudewhohacks/face-api.js
GitHubからリポジトリcloneする
ローカルの任意のディレクトリにcloneする
$ git clone https://github.com/justadudewhohacks/face-api.js
docker hubからnode.jsのイメージpullしてくる
alpineが軽量でオススメらしいので、v14のをpullする
$ docker pull node:14-alpine
イメージをpullできたことの確認
$ docker images
コンテナ立ち上げる
docker run -it-v$PWD:/workspace -p 8100:3000 --name node-face-api node:14-alpine /bin/ash
-it
で、コンテナ内で入力可能な状態にする-v $PWD:/workspace
で、カレントディレクトリのファイルをコンテナ内の「workspace」ディレクトリにマウントするように指定- そのため、リポジトリをcloneしたディレクトリで作業する必要あり
$PWD
は$(pwd)
といった指定方法もありらしい
-p 8100:3000
で、ホスト側のポート8100
とコンテナ側のポート3000
を繋ぐ- このホスト側のポート番号は空いているものを適宜使う
- コンテナ側はよしなに設定
- ポート使用状況はMacの場合「ネットワークユーティリティ」で確認できる
--name node-face-api
で、コンテナ名を「node-face-api」に設定node:14-alpine
で、イメージとバージョン(TAG?)の指定/bin/ash
で、コンテナ内で使うコマンドを指定
今回は使ってないが、以下のオプションもよく使われる
--rm
で、コンテナから出た時にコンテナ削除
※ちなみに、コマンドの記述順は、以下の通りらしい
$ docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
起動時にエラーが起こって上手くコンテナに入れなかった場合、以下の手順でコンテナ削除し、
runコマンド見直してから再度試す
# コンテナ一覧表示$ docker ps -a# 起動(作成)に失敗したコンテナのIDを指定してコンテナ削除$ docker rm[CONTAINER ID]
コンテナ内でアプリケーションを立ち上げる
コンテナ作成して中に入ると、ホストのファイル群がworkspaceディレクトリ内にあるはずなので、確認する
$ cd workspace
$ ls
あとは、face-ap.jsのチュートリアル通りに進めていくだけ
$ cd examples/examples-browser
$ npm install$ npm start
ホストマシンのポートは8100に指定したので、以下にアクセス
それっぽいページが表示されればOK!