如何在 GitHub Action 中等待容器健康?

2024-05-13

我正在使用 GitHub Action 进行一些自动化测试,我的应用程序是在 docker 中开发的。

name: Docker Image CI

on:
  push:
    branches: [ master]
  pull_request:
    branches: [ master]

jobs:

  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Build the Docker image
      run: docker-compose build

    - name: up mysql and apache container runs
      run: docker-compose up -d 

    - name: install dependencies
      run: docker exec  myapp php composer.phar install
  
    - name: show running container
      run: docker ps 


    - name: run unit test
      run: docker exec  myapp ./vendor/bin/phpunit 

在“显示正在运行的容器”步骤中,我可以看到所有容器都在运行,但对于 MySQL,状态为(运行状况:正在启动)。因此,我的单元测试用例全部失败,因为它需要连接到 MySQL。请问有没有办法只有当MySQL容器状态健康时才启动单元案例?


您可以使用以下命令等待所有服务都正常运行--wait选项,已记录here https://docs.docker.com/engine/reference/commandline/compose_up/#options.

命令示例:docker compose up --detach --wait --wait-timeout 30

仅当所有服务都运行后,或者定义的运行状况检查正常时,该命令才会返回。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 GitHub Action 中等待容器健康? 的相关文章

随机推荐