目的
- docker環境でコンパイルを実施する。
利点
- 開発者のチームでVersionを揃えることができる。
- ホストマシンにNode.jsなどをインストールする必要がないので、開発環境の構築と運用が楽になる。
- システムの実行環境にnodeが入っていない場合、コンパイル用のイメージを分けることで実行環境用のdockerイメージが小さくなる。
- 今回はマルチステージビルドの話はないです。
実施方法
- Dockerfile
FROM node:{DockerHubで公開されているTagのバージョン番号を入力してください。}
RUN yarn add node-sass@{node-sassのバージョン番号を入力してください。}
CMD node_modules/node-sass/bin/node-sass ./app/assets/scss/mdb.scss ./app/assets/css/mdb.css --output-style expanded
- makefile
scss:
docker build -t node-sass-compaile ./ && docker run --rm -v $$PWD/app/assets:/app/assets node-sass-compaile
説明
Dockerfileでもvolumeの設定は可能ですが、Dockerfileに記載した場合はホスト側との共有はできません。そのため、コマンド実行時にボリュームを指定してあげる必要があります。
実行環境にdockerを使用している場合はボリュームの共有はできますが、gitへのプッシュや実行環境がまだdockerじゃないと言う方もいると思うので、ホスト側と共有するためにコマンドでボリュームを指定しています!
dockerコマンドでボリュームを指定するとコマンドが長くなるため、makefileやVSCodeのtask.jsonにdockerコマンドをあらかじめ記載しておくと楽になります!
感想
dockerは使えば使うほど、ローカル環境に依存されなくて良いなぁと感じています!
もうdockerなしの生活には戻れない・・・・・・。