В гугле пишут что нужно использовать имя контейнера, я начал реализацию через аргументы командной строки но застрял, т.к. их нужно получать в докер файле. Следом я нашёл всякие правки хоста на 0.0.0.0, 127.0.0.1, разницы нет, это всё localhost. Дальше я нашёл интересный вариант с docker-compose но я только докер щупать начал, а тут мне нате, погуглил немного, сил уже не остаётся compose ковырять.
У меня контейнер где я запускаю nodejs сервер + статику на двух портах, возможно стоило бы поднять ubuntu и всё это там развернуть, но для такой задачи это перебор я считаю.
Второй контейнер docker pull mongo.
ошибка /usr/src/app/node_modules/mongodb/lib/sdam/topology.js:285
[0] const timeoutError = new error_1.MongoServerSelectionError(`Server selection timed out after ${serverSelectionTimeoutMS} ms`, this.description);
[0] ^
[0]
[0] MongoServerSelectionError: connect ECONNREFUSED 127.0.0.1:27017
[0] at Timeout._onTimeout (/usr/src/app/node_modules/mongodb/lib/sdam/topology.js:285:38)
[0] at listOnTimeout (node:internal/timers:559:17)
[0] at processTimers (node:internal/timers:502:7) {
[0] reason: TopologyDescription {
[0] type: 'Unknown',
[0] heartbeatFrequencyMS: 10000,
[0] localThresholdMS: 15,
[0] setName: null,
[0] maxElectionId: null,
[0] maxSetVersion: null,
[0] commonWireVersion: 0,
[0] logicalSessionTimeoutMinutes: null
[0] },
[0] code: undefined,
[0] [Symbol(errorLabels)]: Set(0) {}
[0] }
Запускаю вот так:
docker run -p 27017:27017 -it 0850fead9327 --noauth
docker run -p 4200:4200 -it d4c42b7d1910
А, ещё нашёл флаг --link но он устаревший.
Как правильно это делать?