Невозможно запросить Dockerized контейнер MongoDB из dockerized ASP. NET Core 3.1 контейнера - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть базовый контейнер dockerized. net, и я пытаюсь запросить базу данных MongoDB. У меня есть REST API, который вызывается для запроса базы данных из основного контейнера. net. Кажется, что я могу установить sh соединение с контейнером при создании экземпляра службы:

private readonly IMongoCollection<DbObject> _dbObjects;

public TaxService(IDbConfig dbConfig)
{
    Console.Out.WriteLine("got here: " + dbConfig.ConnectionString);
    MongoClient client = new MongoClient(dbConfig.ConnectionString);
    IMongoDatabase database = client.GetDatabase(dbConfig.DatabaseName);

    _dbObjects = database.GetCollection<DbObject>(dbConfig.SalesTaxCollectionName);
    Console.Out.WriteLine("db initialized");
}

Вот объект dbConfig:

"DbConfig": {
    "SalesTaxCollectionName": "ExampleCollection",
    "ConnectionString": "mongodb://mongo:27017",
    "DatabaseName": "ExampleDb"
}

Он проходит через этот код, но когда база данных фактически запрашивается, выдается PlatformNotSupportedException:

public DbObject GetByValue(string value)
{
    Console.Out.WriteLine("querying db");
    List<DbObject> matches = _dbObjects.Find(dbObject => dbObject.Value.Equals(value)).ToList();
    Console.Out.WriteLine("successfully queried"); // Does not reach this point

    if (matches.Any())
    {
        return matches.First();
    }
    else
    {
        throw new ArgumentException($"No values matched");
    }
}

Для удобства я оставил остальные файлы в гистах:

docker-compose.yml: https://gist.github.com/MinhazMurks/1fbb47afd360bbac48df45b1f0609e33

Dockerfile: https://gist.github.com/MinhazMurks/bb2b7f76d28894a81136d940b5997165

InitExampleDb.js: https://gist.github.com/MinhazMurks/9aae03daceee1e689c4e821419966f41

Full-Log: https://gist.github.com/MinhazMurks/0de9cd822fcf2930065527191127c83b

Любое понимание будет оценено!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...