aliceの技術ブログ

技術ブログ

DockerでMySQLとNode.jsを動かす(雑)

Node.jsのためのDockerfileを用意する

ファイルの内容は少しぼかしている部分があるが、一通り動くと思う。

FROM node

ENV NODE_ENV=dev

WORKDIR /usr/src/app

COPY ./app/ .

EXPOSE 3000

CMD [ "yarn", "dev" ]

docker-compose

version: "3"

services:
  db:
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: "rootpassword"
      MYSQL_DATABASE: "dbname"
      MYSQL_USER: "username"
      MYSQL_PASSWORD: "userpassword"
      TZ: "Asia/Tokyo"
    ports:
      - 3306:3306
    volumes:
      - db-store:/vol/mysql
    networks:
      - network-name

  api:
    image: "docker-image-name"
    container_name: "container-name"
    build:
      context: .
    ports:
      - "3000:3000"
    env_file:
      - .env
    volumes:
      - /app/:/app
    networks:
      - network-name
    depends_on:
      - db


volumes:
  db-store:
networks:
  network-name:

.envは以下のようにしている キー名は任意の名前でよい。はず

.env

PORT=3000
DB_HOST=hostname
DB_PORT=dbport
DB_USER=dbuser
DB_PASSWORD=dbpassword
DB_DATABASE=dbname

だいたいこれだけで動く

時間に余裕ができたら、詳しく書こうと思う。