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
だいたいこれだけで動く
時間に余裕ができたら、詳しく書こうと思う。