超速でつくったAPIサーバをDocker化する(Express編)







前回の記事で、node.jsでAPIサーバを作りました。

今回はこれをdocker環境で動かすようにしてみます。

1. Dockerfile作成

Dockerfileは以下のようにシンプルに書けます。

FROM node #ベースイメージnodeを使用

# ワーキングディレクトリを移動
WORKDIR /root/

#カレントディレクトリのpackage.json,package-lock.json,app.jsをコンテナの/root/以下に配置する
COPY package-lock.json . 
COPY package.json .
COPY app.js .

RUN npm install

EXPOSE 3300

CMD node app.js #express起動

2. ビルド

Dockerイメージをビルドします。

docker build . -t api-node

3. 起動

作成したイメージを起動します。

docker run -d -p 3300:3300 api-node

4.ブラウザ(ホスト)からアクセス

localhost:3300にアクセスしてみましょう。

json文字列が返ってくれば成功です。

Sinatraでも動かそうとしてみましたが、どうも0.0.0.0がバインドできていないのか、似たようなDockerfileだと動かずハマってます(´・ω・`)

なので、当記事では一旦expressで動かしてみた報告にとどめ、Sinatraで動かすパターンはまた他の記事でチャレンジしてみようと思います。

ところで、Dockerの教科書いつの間にか第二版が出ていました。

本書は、コンテナ技術を使ったアプリケーション実行環境プラットフォームである「Docker」を使ってインフラを構築するための入門書として好評を博した前著の改訂版です。
特にオンプレミスサーバ(物理環境)での構築経験がない、アプリケーションエンジニアを対象に、OSやネットワーク技術などのインフラの基礎概念を図解しながら、Docker/Kubernetesを使ったインフラ構築/運用の流れと手順を解説します。
第2版では、Dockerの新機能/コマンドに対応したほか、マルチホスト環境での実行環境構築やクラウドを使った実行環境構築/運用管理など、よりプログラマが注力すべき部分について丁寧に解説しています。

私は初版を持っていますが、この記事を書いているキーボードの横に置いて作業をしています笑