testcontainers / testcontainers/testcontainers-python

docker.errors.NotFound: 404 Client Error when launching MongoDB on Ubuntu 22.04 running in WSL2.

オープン
#323 コメント 1 件 リアクション 1 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

👀 requires attention 🔀 requires triage
主要言語
Python
スター
2.3k
フォーク
386
平均マージ
4時間 40分
マージ済み PR(30日)
1

説明

Describe the bug

...expected it to run?

To Reproduce

Provide a self-contained code snippet that illustrates the bug or unexpected behavior. Ideally, send a Pull Request to illustrate with a test that illustrates the problem.

from motor.motor_asyncio import AsyncIOMotorClient, AsyncIOMotorCollection
from testcontainers.core.container import DockerContainer
from testcontainers.mongodb import MongoDbContainer
from testcontainers.core.waiting_utils import wait_for

async def test_db():
    with DockerContainer("mongodb/mongodb-community-server:latest").with_bind_ports(27017, 27017) as mongo_container:
        def connect():
            return AsyncIOMotorClient("mongodb://{}:{}".format(mongo_container.get_container_host_ip(),
                                                           mongo_container.get_exposed_port(27017)))


    db = wait_for(connect).primer
    result = db["restaurants"].insert_one(
        {
            "address": {
                "street": "2 Avenue",
                "zipcode": "10075",
                "building": "1480",
                "coord": [-73.9557413, 40.7720266]
            },
            "borough": "Manhattan",
            "cuisine": "Italian",
            "name": "Vella",
            "restaurant_id": "41704620"
        }
    )
    cursor = db.restaurants.find({"borough": "Manhattan"})
    for document in await cursor.to_list(1000):
        print(document)

Runtime environment

Provide a summary of your runtime environment. Which operating system, python version, and docker version are you using? What is the version of testcontainers-python you are using? You can run the following commands to get the relevant information.

# Get the operating system information (on a unix os).
$ uname -a
Linux DESKTOP-GJIUB03 5.15.90.1-microsoft-standard-WSL2 #1 SMP Fri Jan 27 02:56:13 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
# Get the python version.
$ python --version
Python 3.10.6
# Get the docker version and other docker information.
$ docker info
https://pastebin.com/raw/5meC1tZJ
# Get all python packages.
$ pip freeze
https://pastebin.com/raw/zJQfnQkb

Latest version of testcontainers-python and MongoDB.

Full traceback when I run the snippet: https://pastebin.com/raw/3TvwYiLa (warn me if I doxxed myself in somewhere)

I can launch this container inside WSL, so Docker is working. Weird.

image

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず、WSL2 上の Ubuntu 22.04 で DockerContainer または MongoDbContainer を使用して、提供された Python スニペットを再現します。リンクされた traceback、Docker 情報、パッケージのバージョンを確認し、MongoDB の起動が 404 を返す理由を特定します。原因が文書化され、報告された環境で MongoDB のテストが正常に実行されれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
docker, mongodb, python
領域
databases, devops, testing-qa
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。