Dockerを学ぶ(第2回)

はじめに

今回もDocker公式ドキュメントを実施してみます。
お次はどうやらNode.jsを使用したサンプルアプリケーションを使ったチュートリアルになるようです。
とはいえ、JavaScriptの経験がなくとも問題ないようですよね、安心して実施していきます。(?)

サンプルアプリケーションの取得

以下のコマンドを実行します。
なお、こちらのリポジトリはgetting-startedで使用する全てのコードが含まれていますが、今回使用するのは/appディレクトリとなります。

$ git clone https://github.com/docker/getting-started.git

コンテナイメージのビルド

ここから、/appをコンテナ化するためのイメージを作成していきます。

Dockerfileの作成

アプリケーションをビルドするために、まずはDockerfileを作成します。
Dockerfileには、コンテナイメージで使用される手順(指示)スクリプトをテキストベースで記述します。
それでは実際に作成していきましょう。
Dockerfilepackage.jsonがあるディレクトリと同じディレクトリに作成します。(/appディレクトリ内に作成する)

# syntax=docker/dockerfile:1
 FROM node:12-alpine
 RUN apk add --no-cache python g++ make
 WORKDIR /app
 COPY . .
 RUN yarn install --production
 CMD ["node", "src/index.js"]

この時、.txtなどの拡張子がつかないように注意します。ファイル名は単にDockerfileとしてください。

docker build

Dockerfileが作成できたら、ターミナルからdocker buildを実行します。 ターミナルで、app ディレクトリへ移動するのを忘れずに。 完全なコマンドは以下となります。

$ docker build -t getting-started . 

(最後のピリオドを忘れずに!!)

今回もコマンドについて解説します。

フラグ 解説
-t getting-started -t をつけると、イメージにタグ名をつけることができます。
. (最後のピリオド) Dockerfileがカレントディレクトリにあることを表します。

Dockerfileに記述されている内容についてはいずれまとめます・・・。

コンテナの開始(docker run)

イメージが完成したので、アプリケーションを実行してみます。

$ docker run -dp 3000:3000 getting-started

(コマンド中の-dp-d -pと同じ意味です) コマンド実行が成功しましたら、ブラウザでhttp://localhost:3000 を見てみましょう。 以下のようになれば成功です!!

f:id:sho03:20210501173605p:plain

終わりに

今回はここまでとなります。次回はアプリケーションの更新を行います。