アジャイ:
私は、単純な開発してきた春のブートアプリケーションを行うことのCRUD操作を使用してのMongoDBをデータベースとして。私は内のアプリケーションという展開しているドッカーしながら、私がnull値を取得するGETリクエストにMongoDBに保存されているすべてのアイテムのために。ドッカーに必要なファイルの一部を以下に提供します。
Dockerfile:
VOLUME /tmp
ADD build/libs/Spring-Boot-MongoDB-0.0.1-SNAPSHOT.jar SpringMongoApp.jar
ENTRYPOINT ["java", "-Dspring.data.mongodb.uri=mongodb://mongo:27018/otp","-jar","/SpringMongoApp.jar"]
ドッカー-compose.yml:
version: "3"
services:
api-database:
image: mongo:3.2.4
container_name: "springboot-mongo-app"
ports:
- "27018:27017"
environment:
MONGO_INITDB_ROOT_DATABASE: otp
networks:
- test-network
api:
image: springboot-api
ports:
- "8080:8080"
depends_on:
- api-database
networks:
- test-network
networks:
test-network:
driver: bridge
application.properties:
spring.data.mongodb.host=api-database
私がチェックしたときのMongoDBドッカーコンテナをコンテナIDを使用して、それが自動的に接続されて取得されたテスト・データベースではなくにOTP私は環境のセクションで言及しているデータベースドッキングウィンドウ-compose.ymlファイル。
Valijon:
問題は、あなたのドッキングウィンドウコンテナが永続的ではないということです、あなたのドッキングウィンドウコンテナを実行するたびに、データベースが消去され、再度、再作成しました。
あなたが追加した場合はVOLUME
持続する/data/db
、あなたは望ましい結果を得るでしょう。
私はあなたの持っているディレクトリが前提と
data/db
あなたが保存されている同じ場所にdocker-compose.yml
。あなたがかもしれセットアップカスタムディレクトリ(つまり/tmp/data/db
)
この方法を試してください。
ドッカー-compose.yml:
version: "3"
services:
api-database:
image: mongo:3.2.4
container_name: "springboot-mongo-app"
ports:
- "27018:27017"
volumes:
- "./data/db:/data/db"
environment:
MONGO_INITDB_ROOT_DATABASE: otp
networks:
- test-network
api:
image: springboot-api
ports:
- "8080:8080"
depends_on:
- api-database
networks:
- test-network
networks:
test-network:
driver: bridge
注:初めて、それはなります空のデータベース。あなたは、コレクション、挿入レコードなどを作成した場合...それはに保存されます./data/db