0
1

Dockerfileでnode.js(Express)のHELLOWORLDを10分で出力!

Last updated at Posted at 2024-05-02

やりたかったこと

Dockerが提供するNodeイメージからコンテナを作成しexpressのインストールを行いブラウザ上で「HELLO WORLD」表示までできたが、毎回立ち上げるたびに作業が発生して面倒くさい(楽したい)ので、Dockerfileを使ってみました

やったこと

  • 環境構築
    ・Dockerインストール
    ・自身のPCに作業用ディレクトリ作成
  • コーディング
    ・expressのルーティングで使用するindex.js作成
    ・コンテナ作成時に使用するDockerfileの作成 ★今回のメイン
  • Dockerfileからコンテナを作成
    ・DockerfileからDockerImageを作成
    ・作成したImageからコンテナを立ち上げ
    ・立ち上げたコンテナへブラウザからアクセス Fin

環境構築/Dockerインストール & 自身のPCに作業用ディレクトリ作成

まずはとりあえずDockerを使えるようにインストールをしていきます。

Docker公式サイトよりDocker Desktop on Windowsをインストール

適当なパスに作業用のフォルダを作成してください。
私はドキュメント配下に「node」というフォルダを作成しています。

コーディング/expressのルーティングで使用するindex.js作成

作成したnodeフォルダ配下に以下のファイルを作成

index.js
const express = require("express");
const app = express();

app.get("/", (req, res) => {
    res.send("HELLO WORLD");
});

app.listen(80, () => {
    console.log("Start server on port 80");
});

コーディング/コンテナ作成時に使用するDockerfileの作成

index.jsと同様にnodeフォルダ配下に以下のファイルを作成

Dockerfile
FROM node:latest

WORKDIR /var/www

RUN npm install express
COPY ./index.js /var/www/.

CMD ["node","index.js"]

Dockerfileからコンテナを作成/DockerfileからDockerImageを作成

コマンドプロンプトor PowerShellより以下のコマンドを実行しDockerImageを作成する

cd <自身で作成したnodeフォルダ>
docker build -t express-image .

cdでnodeフォルダに移動しないとdocker buildコマンドがDockerfileが見つからないためエラーとなるので注意してください。

Dockerfileからコンテナを作成/作成したImageからコンテナを立ち上げ

コマンドプロンプトor PowerShellより以下のコマンドを実行し作成したImageをベースにしたコンテナを作成

docker container run -it --name express -p 8000:80 -d express-image

自身のPCですでに8000ポートを使用している場合、同一ポートを複数アプリで使用することになりエラーが発生します。その際には8000の部分には使用していないポート番号を指定してください。

Dockerfileからコンテナを作成/立ち上げたコンテナへブラウザからアクセス

任意のブラウザ(GoogleChrom/safari/InternetExplorerなど)からhttp://localhost:8000へアクセス
以下の画面が表示されればExpress環境の構築完了です!お疲れ様でした~
image.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1