GitHub动作:如何在容器中运行作业

时间:2020-09-01 16:40:38

标签: github-actions

我尝试将项目CI转移到GitHub Actions。对于集成测试,我需要启动和访问redis容器。我正在使用此信息 article。 所以代码看起来像这样

build-artifacts:
    name: Build artifacts
    runs-on: ubuntu-latest
    services:
      redis:
        image: redis:3.2.12
        ports:
        - 6379:6379

我可以使用localhost:6379访问redis,但不能使用redis:6379访问redis。本文无济于事。我在做什么错了?

谢谢。

2 个答案:

答案 0 :(得分:0)

您需要托管一个外部Redis数据库,因为GitHub Actions中的容器是隔离的。 另一方面,您可以准备一个包含所有测试所需的docker容器,然后可以在其中运行测试。

联合国可以在这里看看https://github.com/gonsandia/github-action-deploy 这是一个自定义操作,您可以在其中定义dockerfile和要运行的脚本

答案 1 :(得分:0)

所以我找出了问题所在。 仅当您在容器中运行作业时,Docker网络才能工作。而我没有。

以下是示例https://github.com/actions/example-services/blob/989ef69ed164330bee413f11ce9332d76f943af7/.github/workflows/mongodb-service.yml#L19

和引号:

在指定容器内而不是在VM主机上运行所有步骤。 因此,网络配置从基于主机的网络更改为容器网络。