ОС: MacOS mojave
version: '3.1'
services:
apiWithKubernetesMongodb:
container_name: apiWithKubernetesMongodb
image: mongo
ports:
- "27018:27018"
expose:
- "27018"
command: --bind_ip_all --port 27018
hostname: mongodb
environment:
MONGO_INITDB_ROOT_USERNAME: mongousradmin
MONGO_INITDB_ROOT_PASSWORD: mongopassadmin
MONGO_INITDB_DATABASE: admin
networks:
- apinet
apiWithKubernetes:
container_name: api_with_kubernetes
image: sherryummen/api_with_kubernetes:v1
build:
context: .
dockerfile: Dockerfile
networks:
- apinet
volumes:
- .:/go/src/api_with_kubernetes
ports:
- 8080:8080
depends_on:
- apiWithKubernetesMongodb
links:
- apiWithKubernetesMongodb
networks:
apinet:
driver: bridge
const (
HOST = "apiWithKubernetesMongodb"
PORT = 27018
DBNAME = "service_db"
COLLECTIONNAME = "user_info"
ROOTUSER = "mongousradmin"
ROOTPASSWORD = "mongopassadmin"
)
client, err := mongo.NewClient(options.Client().ApplyURI(fmt.Sprintf("mongodb://%s:%s@%s:%d/admin", ROOTUSER, ROOTPASSWORD, HOST, PORT)))
У меня есть выше файл Docker и идет API, который должен подключиться к mongodb.
Но мой код Go дает ошибку "время ожидания выбора сервера \ ncurrent topology: Тип: Unknown \ nServers: \ nAddr: apiwithkubernetesmongodb: 27018, Тип: Unknown, Состояние: Подключено, Среднее RTT: 0, Последняя ошибка: соединение (apiwithkubernetesmongodb: 27018 [-249]) соединение закрыто "
Примечание. Для тех, кто сталкивался с этим, речь шла о вводе названия службы, после переключения на все строчные имена она начинает работать.