mongodb - 无法连接到 gitlab 内的 mongo docker

标签 mongodb docker gitlab-ci gitlab-ci-runner

我有以下由下一个 docker-compose 构建的 docker 镜像

services:
    give_sync_test:
        image: mongo:4.2.10
        restart: always
        environment:
            MONGO_INITDB_DATABASE: mybase
            MONGO_INITDB_ROOT_PASSWORD: admin
            MONGO_INITDB_DATABASE: password
        ports:
            - 27017:27017

我通过以下 gitlab 步骤使用它:

test:
    stage: test
    dependencies:
        - maven_build_snapshot
    image: 'my_image:latest'
    before_script:
        - apt-get update
        - apt-get -y install git
        - mongo "mongodb://localhost:27017/mybase" < ./utils/test

utils/test 的内容很简单:

use myBase;

没有采取任何行动,真正的问题是我从 gitlab-ci 收到以下错误:

connecting to: mongodb://localhost:27017/give?compressors=disabled&gssapiServiceName=mongodb 2020-12-09T14:44:21.828+0000 E QUERY [js] Error: couldn't connect to server localhost:27017, connection attempt failed: SocketException: Error connecting to localhost:27017 (127.0.0.1:27017) :: caused by :: Connection refused : connect@src/mongo/shell/mongo.js:353:17 @(connect):2:6 2020-12-09T14:44:21.830+0000 F - [main] exception: connect failed 2020-12-09T14:44:21.830+0000 E -
[main] exiting with code 1

我已经尝试过使用 mongo 字符串进行一些身份验证 mongodb://admin:密码@localhost:27017/mybase

有人知道我做错了什么吗?

最佳答案

您应该使用服务别名来连接到容器。在这种情况下,您可以使用此连接字符串 mongodb://admin:password@give_sync_test:27017/mybase

访问 mongo

关于mongodb - 无法连接到 gitlab 内的 mongo docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65219754/

相关文章:

php - 在 MAMP 上为 MongoDB 安装 PHP 驱动程序

php - 将 php 容器与 mongodb 容器链接

docker - Ingress如何决定他是否必须在http或https上公开kubernetes服务?

java - 如何优雅地关闭 docker 容器中 tomcat 中的 servelts?

android - 使用 Gitlab CI 生成 Android 构建

java - 使用 Morphia 在另一个集合中获取引用的 mongodb 文档

javascript - 如何正确设置多个字段 $min

docker - 创建容器的最佳方法

android - 将所有数据缓存在 .gitlab-ci.yml 文件中

.net-core - dotnet 发布输出文件夹?