0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker Composeを使ったMongoDBとMongo Expressのセットアップ

Last updated at Posted at 2024-07-24

MongoDBをDockerで構築したときに苦戦したので、とりあえずうまくいった内容をメモ代わりに残す
今回は以下の理由により、事前ネットワークを準備し、externalネットワークとして設定している

  • 複数のdocker composeを使いたい
  • またそれらのコンテナ間で通信をしたい

事前にネットワーク作成

docker network create my_network
version: "3.1"

services:
  mongodb:
    image: mongo
    container_name: mongodb
    restart: always
    ports:
      - 27017:27017
    volumes:
      - mongoDataStore:/data/db
      - ./configdb:/data/configdb

    environment:
      MONGO_INITDB_ROOT_USERNAME: ${MONGODB_USERNAME}
      MONGO_INITDB_ROOT_PASSWORD: ${MONGODB_PASSWORD}
    networks:
      - my_network

  mongo-express:
    image: mongo-express
    container_name: mongo-express
    restart: always
    ports:
      - 7543:8081
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: ${MONGODB_USERNAME}
      ME_CONFIG_MONGODB_ADMINPASSWORD: ${MONGODB_PASSWORD}
      ME_CONFIG_MONGODB_URL: mongodb://${MONGODB_USERNAME}:${MONGODB_PASSWORD}@mongodb:27017/
      ME_CONFIG_BASICAUTH_USERNAME: ${EXPRESS_USERNAME}
      ME_CONFIG_BASICAUTH_PASSWORD: ${EXPRESS_PASSWORD}
    networks:
      - my_network
    depends_on:
      - mongodb

volumes:
  mongoDataStore:
    driver: local

networks:
  my_network:
    external: true
  • 8081ポートがセキュリティソフトのTrellixと競合していたためportを変更している
  • ネットの記事ではdepends_onを設定するだけでコンテナ間通信ができると書いてあったが、私の環境ではうまくいかなかったためME_CONFIG_の値を色々書いている

環境変数はcomposeと同階層の.envに記載

.env
MONGODB_USERNAME = root
MONGODB_PASSWORD = password
EXPRESS_USERNAME = admin
EXPRESS_PASSWORD = password

環境変数にどのような値が入って実行されるかは、configコマンドで確認できる

docker compose config

実行

dokcer compose up
0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?