これまでの進捗
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に入れたら成功
感想
週末って記事書くだけでもしんどいんやな
内容まとめが追いつきつつあるので土日休みは実装進めます