0
1

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 1 year has passed since last update.

DockerでNext.jsとMongoDB環境の構築をする

Posted at

Next.jsとMongoDBを利用して個人アプリ開発を行おうと思い、Dockerで環境構築を行うことにした。

この記事では、DockerでNext.jsとMongoDB環境の構築方法を解説します。

ちなみに私はMacを使用しています。

環境構築

まずはDockerfileとdocker-compose.ymlを以下のような構成で配置します。

SampleProject
 - docker
    - Dockerfile
 - docker-compose.yml

Dockerfile

Dockerfile
FROM node:14.15.4-alpine

EXPOSE 3000
ENV HOST 0.0.0.0

# コマンド実行
RUN apk update && \
    apk add git && \
    npm install -g @vue/cli nuxt create-nuxt-app

docker-compose.yml

docker-compose.yml
version: '3.8'

services:
  # 参考:dockerhub(https://hub.docker.com/_/mongo)
  mongo:
    image: mongo:4.4.5
    restart: always
    ports:
      - 27017:27017
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example
    # データを永続化する場合必要。volumesがないとdocker-compose downする度にデータが消える
    volumes:
      - ./db:/data/db
      - ./configdb:/data/configdb

  mongo-express:
    image: mongo-express:0.54
    restart: always
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: root
      ME_CONFIG_MONGODB_ADMINPASSWORD: example
      ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/

  nuxt:
    build: ./docker/
    ports:
      - 9000:3000
    volumes:
      - ./SampleProjects:/workspace
    working_dir: /workspace
    command: npm run dev
    # ホットリロードを有効にする
    environment:
      - CHOKIDAR_USEPOLLING=true
    links:
      - mongo

Dockerサービスの立ち上げ

$ docker-compose build

Nuxtアプリケーションの作成

$ npm create-nuxt-app プロジェクト名

各種設定を聞かれますので、自分の作成したい内容に合わせて設定して下さい。

Dockerサービスの起動

$ docker-compose up -d

docker-compose.ymlで「command: npm run dev」と設定しているのでdocker-compose upをすればすぐにブラウザで起動していることを確認できます。

nuxtアプリケーションが起動していることが確認できます。

Mongo-expressが立ち上がっており、ブラウザ上でMongoDBの内容を確認することができます。

まとめ

これでDockerでNuxt.jsとMongoDBの環境構築は完了です。

私もdocker-compose.ymlの設定などは色々な記事を参考にしましたが、人によって色々な書き方があるなーという感想です。

それぞれのローカル環境によっても変わってくるとは思いますので参考にしていただければと思います。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?