【问题标题】:How to access a service in Github Actions CI/CD?如何访问 Github Actions CI/CD 中的服务?
【发布时间】:2019-12-29 13:24:54
【问题描述】:

我正在尝试在 GitHub Actions 中为我的 Elixir 项目设置 CI/CD 管道。

我可以获取依赖项、编译它们、检查格式、信条...但是当测试开始时,我无法访问在 YAML 上声明的 PostgreSQL 服务。

如何链接两个容器? (Elixir 和 PostgreSQL)

根据 GitHub Actions 上显示的日志,两个容器都在同一个 Docker 网络上,因此它们应该可以使用它们的网络别名相互访问。但是,当我尝试连接到 postgres 时,它显示 NXDOMAIN。正如预期的那样,ping 也不起作用。

我的工作流程内容:

name: Elixir CI

on: push

jobs:
  build:
    runs-on: ubuntu-18.04

    container:
      image: elixir:1.9.1

    services:
      postgres:
        image: postgres
        ports:
        - 5432:5432
        env:
          POSTGRES_USER: my_app
          POSTGRES_PASSWORD: my_app
          POSTGRES_DB: my_app_test

    steps:
    - uses: actions/checkout@v1
    - name: Install Dependencies
      env:
        MIX_ENV: test
      run: |
        cp config/test.secret.ci.exs config/test.secret.exs
        mix local.rebar --force
        mix local.hex --force
        apt-get update -qqq && apt-get install make gcc -y -qqq
        mix deps.get
    - name: Compile
      env:
        MIX_ENV: test
      run: mix compile --warnings-as-errors
    - name: Run formatter
      env:
        MIX_ENV: test
      run: mix format --check-formatted
    - name: Run Credo
      env:
        MIX_ENV: test
      run: mix credo
    - name: Run Tests
      env:
        MIX_ENV: test
      run: mix test

另外,在 Elixir 上我已经设置了连接到postgres:5432 的测试任务,但它说主机不存在。

根据我在 Internet 上找到的一些教程和示例,此配置看起来是有效的,但我无能为力。

【问题讨论】:

    标签: github elixir github-actions


    【解决方案1】:

    您需要将服务名称 ("postgres") 作为POSTGRES_HOST 传递给应用程序设置端口POSGRES_PORT: ${{ job.services.postgres.ports[5432] }}(空格很重要。)

    Github CI 动态地将端口和主机路由到它。

    几天前我就这个主题写了blog post

    【讨论】:

    • 成功了!我看到了你的帖子,但我没有注意到博文上的括号不正确。现在根据您的建议并将端口设置为 5432/tcp,我设法让它工作了!谢谢!
    • 编辑:我认为他们这边应该有问题。使用相同的配置和相同的环境变量运行相同的提交两次,第一次运行良好,第二次出现 nxdomain 错误:/
    • 可能是。由于文档的状态,该服务应被视为 alpha 阶段。
    猜你喜欢
    • 2020-11-16
    • 2020-01-08
    • 1970-01-01
    • 2020-07-01
    • 2021-05-30
    • 2022-10-19
    • 2022-09-23
    • 1970-01-01
    • 2020-01-19
    相关资源
    最近更新 更多