LoginSignup
2
3

More than 5 years have passed since last update.

Docker で nodemon を使って、サーバー再起動を自動化する

Last updated at Posted at 2017-12-19

方法としては、nodemon を使って、volumes でコンテナー内のファイルを編集できるようにして、index.js の変更を監視してもらうようにした。

docker-compose.yml
version: '2'
services:
  IMAGE_NAME:
    build: .
    restart: on-failure
    environment:
      - NODE_ENV
    tty: true
    stdin_open: true
    depends_on:
    volumes:
      - ./package.json:/usr/src/app/package.json
      - ./index.js:/usr/src/app/index.js

package.json の bin を設定することで、コマンドを設定できるので、global インストールさせずに nodemon コマンドを叩いている。

Dockerfile ファイルの最後の行で定義した yarn start コマンドが nodemon index.js にあたるようになるので、dockerを docker-compose up で立ち上げたときに、監視されて自動で再起動される。

FROM node:8
MAINTAINER Ryosuke Miyamoto <miyamoto@ndinc.jp>

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY package.json /usr/src/app/

RUN yarn install

COPY . /usr/src/app/

EXPOSE 3000

CMD ["yarn", "start"]

package.json
{
  "name": "bot",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "repository": {
    "type": "git",
    "url": ""
  },
  "scripts": {
    "start": "nodemon index.js",
  },
  "keywords": [
  ],
  "author": "yahsan2",
  "license": "MIT",
  "bin": {
    "nodemon": "node_modules/nodemon/bin/nodemon.js"
  },
  "dependencies": {
    "nodemon": "^1.13.3",
  },
  "devDependencies": {
  }
}


※ 上記ファイルのコードは、必要な部分を抜粋なので、動作確認していない。

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