Gitlab CI无法在kubernetes运行程序上解析服务主机名

问题描述 投票:0回答:1

我有一个配置为在Kubernetes运行程序上运行的GitLab CI管道。一切工作都很好,直到我尝试为测试工作添加服务。在kubernetes上无法解析服务主机名(例如:mysql),从而导致以下错误dial tcp: lookup mysql on 10.96.0.10:53: no such host。但是,它可以在dockerRunner上运行,但这不是我想要的。有没有办法

.gitlab-ci.yml中的工作定义:

test:
    stage: test
    variables:
        MYSQL_ROOT_PASSWORD: --top-secret--
        MYSQL_DATABASE: --top-secret--
        MYSQL_USER: --top-secret--
        MYSQL_PASSWORD: --top-secret--
    services:
      - mysql:latest
      - nats:latest
    script:
        - ping -c 2 mysql
        - go test -cover -coverprofile=coverage.prof.tmp ./...
kubernetes gitlab-ci gitlab-ci-runner
1个回答
0
投票

从您提供的文档链接中,我看到mysql主机名应该可以访问。

服务与工作的联系方式

为了更好地了解容器链接的工作方式,请阅读链接容器在一起。

总而言之,如果将mysql作为服务添加到应用程序中,图像随后将用于创建链接到工作容器。

MySQL的服务容器将在主机名下访问MySQL的。因此,为了访问数据库服务,您必须连接到名为mysql的主机,而不是套接字或localhost。读有关访问服务的更多信息。

也来自文档

如果未指定服务别名,则在运行作业时,将启动service,您将可以从构建容器中访问它]

所以您可以检查启动mysql服务时是否有错误。

© www.soinside.com 2019 - 2024. All rights reserved.