Docker を使用したローカル Atlas 配置の作成
項目一覧
このチュートリアルでは、Docker を使用してローカル Atlas 配置を作成する方法を説明します。 このチュートリアルでは、Docker を使用して単一ノードのレプリカセットを配置します。
Docker を使用したローカル Atlas 配置の作成
Docker をインストールして起動します。
詳しくは、 Dockerのドキュメントを参照してください。
Docker イメージを実行します。
例:
docker run -p 27017:27017 mongodb/mongodb-atlas-local
docker run -e MONGODB_INITDB_ROOT_USERNAME=user -e MONGODB_INITDB_ROOT_PASSWORD=pass -p 27017:27017 mongodb/mongodb-atlas-local
Atlas のコンテナ化された配置を自動化するには、Atlas に接続する前に、コンテナが正常な状態になるまで待機する必要があります。
次の例では、Docker に Atlas イメージを配置し、Docker をポーリングしてコンテナの状態を確認する方法を示します。 コンテナが正常な状態になると、スクリプトはMongosh を使用して Atlas インスタンスへの接続を自動化します。
mongodb-atlas-local.sh
というファイルを作成し、次のスクリプトを新しいファイルに貼り付けます。Start mongodb-atlas-local container echo "Starting the container" CONTAINER_ID=$(docker run --rm -d -P mongodb/mongodb-atlas-local:latest) echo "waiting for container to become healthy..." function wait() { CONTAINER_ID=$1 echo "waiting for container to become healthy..." for _ in $(seq 120); do STATE=$(docker inspect -f '{{ .State.Health.Status }}' "$CONTAINER_ID") case $STATE in healthy) echo "container is healthy" return 0 ;; unhealthy) echo "container is unhealthy" docker logs "$CONTAINER_ID" stop exit 1 ;; *) sleep 1 esac done echo "container did not get healthy within 120 seconds, quitting" docker logs mongodb_atlas_local stop exit 2 } wait "$CONTAINER_ID" EXPOSED_PORT=$(docker inspect --format='{{ (index (index .NetworkSettings.Ports "27017/tcp") 0).HostPort }}' "$CONTAINER_ID") Build the connectionstring CONNECTION_STRING="mongodb://127.0.0.1:$EXPOSED_PORT/test?directConnection=true" Example usage of the connection string to connect to mongosh mongosh "$CONNECTION_STRING" 以下のコマンドを実行して、ファイルを実行可能にします。
chmod +x mongodb-atlas-local.sh 実行可能ファイルを実行します。
./mongodb-atlas-local.sh
Atlas のローカル配置に接続します。
ホスト(コンテナではない)からローカルAtlas配置に接続するには、次のコマンドをコピーして新しいターミナルに貼り付け、{connection_string}
変数を接続文字列に置き換えます。
注意
次の例ではmongosh
を使用していますが、お好みの接続方法を使用できます。
mongosh {connection_string}
例:
mongosh "mongodb://localhost:27017/?directConnection=true"
mongosh "mongodb://user:pass@localhost:27017/?directConnection=true"
Docker Composer を使用したローカル Atlas 配置の作成
Docker Compose を使用してローカル Atlas 配置を作成します。
Atlas のローカル配置に接続します。
ホスト(コンテナではない)からローカルAtlas配置に接続するには、次のコマンドをコピーして新しいターミナルに貼り付け、{connection_string}
変数を接続文字列に置き換えます。
注意
次の例ではmongosh
を使用していますが、お好みの接続方法を使用できます。
mongosh {connection_string}
例:
mongosh "mongodb://user:pass@localhost:27018/?directConnection=true"
Docker Composer による実行間でのデータの永続化
Docker Composer を使用すると複数の実行にわたってデータを永続化できます 。データを永続化すると、実行間でデータが失われるのを防ぐことができます。 Docker Compose の実行全体でデータは引き続き利用できます。
docker-compose.yaml
ファイルを作成します。
docker-compose.yaml
ファイルを更新して、必要なデータディレクトリをボリュームとしてマウントします。
例:
1 services: 2 mongodb: 3 hostname: mongodb 4 image: mongodb/mongodb-atlas-local 5 environment: 6 - MONGODB_INITDB_ROOT_USERNAME=user 7 - MONGODB_INITDB_ROOT_PASSWORD=pass 8 ports: 9 - 27019:27017 10 volumes: 11 - data:/data/db 12 - config:/data/configdb 13 volumes: 14 data: 15 config:
Docker Composer を実行します。
次の コマンドは、Atlas Search 機能が有効になっているローカル Atlas 配置を作成します。
例:
docker-compose up
分離モードで Docker Compose を実行することもできます。
例:
docker-compose up -d
Atlas のローカル配置に接続します。
ホスト(コンテナではない)からローカルAtlas配置に接続するには、次のコマンドをコピーして新しいターミナルに貼り付け、{connection_string}
変数を接続文字列に置き換えます。
注意
次の例ではmongosh
を使用していますが、お好みの接続方法を使用できます。
mongosh {connection_string}
例:
mongosh "mongodb://user:pass@localhost:27019/?directConnection=true"
依存関係のリストの生成
mongodb/mongodb-atlas-local
Docker イメージの依存関係のリストを生成できます。
Install syft.
例:
brew install syft
詳しくは、 syft README を参照してください。
イメージ署名の検証
mongodb/mongodb-atlas-local
Docker イメージの署名を検証できます。
cosign をインストールします。
例:
brew install cosign
詳細については、「 cosign のインストール 」を参照してください。
Githubアクションでイメージを実行
mongodb/mongodb-atlas-local
DockerアクションでGithub イメージを実行するには、ワークフロー ファイルを作成します。詳細については、Github Actions クイックスタート を参照してください。
例:
.github/workflows
ディレクトリに次のmongodb.yml
ファイルを作成します。
on: push: branches: - main pull_request: jobs: run: runs-on: ubuntu-latest services: mongodb: image: mongodb/mongodb-atlas-local ports: - 27017:27017 steps: - name: install mongosh run: | curl --output mongosh.deb https://downloads.mongodb.com/compass/mongodb-mongosh_2.2.1_amd64.deb sudo dpkg -i mongosh.deb mongosh --version - run: mongosh 'mongodb://localhost/?directConnection=true' --eval 'show dbs'