1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Day3] TypeScript × Node.jsで簡単なRESTAPI作ってみる(Docker編)

Posted at

これまでの進捗

Day1

Day2

dockerとは

コンテナと呼ばれる仮想OS環境を作成・管理出来るツール
ホスト型と違って軽くて早いのが特徴

ホスト型

ホストOS上にゲストOSが乗っかる。
当然PCへの負荷が大きい。

コンテナ型

ホストOSのカーネルを使って擬似的に環境を作る。
動いているOSは1つなのでホスト型より負荷は少ない。
ホストOSと全く異なるOSは動かせない。

docker-compose

dockerコンテナ間の連携をしたい時に定義しておける。
頻出パターンとしてはAPPコンテナ + DBコンテナみたいな構成が多い印象

docker-composeで開発環境を作る

docker-compose.ymlを作成する

# docker-composeのバージョン
version: '2'

# 動かしたいコンテナを記述していく
services:
  # api用のコンテナ。今回はnodejsの実行環境
  api:
   # ./build/Dockerfileを読み込む
   build: build
   # コンテナ名を定義
   container_name: api
   # コンテナを持続させる
   tty: true
   # ホストとコンテナのデータを同期
   volumes:
     - ./app:/app
   # ポートフォワードの設定
   ports:
     - "3000:3000"
  
  # Day2で説明したswaggerのeditorも入れておく
  swagger:
   image: swaggerapi/swagger-editor
   ports:
     - "3001:8080"

./build/Dockerfile
node.jsの環境構築

FROM node:8.12.0-alpine
# node.jsをデーモン化するツールを導入
RUN npm install -g forever

WORKDIR /app
EXPOSE 3000

イメージを作成する
docker-compose build
イメージを実行する
docker-compose up -d
node.jsのコンテナに入る
docker exec -it api sh
/appに入れたら成功

感想

週末って記事書くだけでもしんどいんやな
内容まとめが追いつきつつあるので土日休みは実装進めます

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?