dockerとnodejsの勉強
pcの環境を汚したくないし、ラズパイに簡単に移行できるようにdockerを使ってwebアプリを作ってみたい。
dockerの公式サイト(https://docs.docker.com/get-started/)からdockerでnodejsを使ったtodoアプリの立ち上げ方が書いてある。
このアプリを元にdockerとnodejsの両方の勉強を一気にしようと思ったが、todoアプリの構成がnodejs初心者の自分には理解が難しかった。
そのためdockerで最小限のnodejsの環境を用意して、0からnodejsの勉強をする。
docker
dockerのチュートリアルとかqiitaとか読んでみた。
作る必要があるのは以下のファイル。
・Dockerfile
コンテナという仮想環境を作る土台であるイメージの設定を書くファイル。
・compose.yml
複数のコンテナをまとめて実行できるようにするファイル。1つでも実行が楽になる。
・package.json
nodejsのパッケージをまとめたファイル。
・app.js
nodejsで動かすサーバーのプログラム。
Dockerfileをつくる
alpineという軽量なlinuxにnodejsをインストールした環境がdockerによって用意されているのでそのイメージを使う。
イメージの中のappというフォルダを作業ディレクトリに設定。
ホスト側のファイルをappにコピー
npm installでpackage.jsonに記載したライブラリをインストール。
app.jsを実行
ポート3000を開放
compose.yamlをつくる
dockerfileの内容でビルド
appディレクトリにcdしておく
ポートは3000
./のディレクトリをコンテナのappディレクトリにマウント。
変更が反映されるようになる。
app.jsをつくる
package.jsonをつくる
実行
compose.yamlファイルがあるディレクトリで
docker compose up -d
localhost:3000にアクセスすると
Hello Node.js!と表示される。
あとから追加するパッケージ
vscodeでpackage.jsonに追加しようとすると勝手に最新verを教えてくれる。
・nodemon
これは開発の時しか使わないためdevDependenciesに加える。
dependenciesに加えるとデフォルトだとエラーが出る。
自動で編集したところを更新してくれる。--watch機能があるみたいだが更新してくれる範囲がのーどもんのほうが広いらしい。nodeで起動する代わりにnodemonで起動する。
CMD ["node", "app.js"]をCMD ["nodemon", "app.js"]に変える。
パッケージを追加したらビルドし直す
docker compose up --build -d
コマンド操作
コマンドで操作するとき
nano ファイル名 :ファイル編集。vimコマンド覚えてないから
touch ファイル名 :ファイル作成
ctrl+K :カーソルから行末まで削除
ctrl+U:カーソルから行頭まで削除
ctrl+A: カーソルを行頭へ移動
ctrl+E:カーソルを行末へ移動
rm ファイル名:ファイル、ディレクトリ削除
mkdir ディレクトリ名:ディレクトリ作成
コメント
0 件のコメント :
コメントを投稿