gpt4 book ai didi

docker - 如何在 GitHub 操作中等待容器健康?

转载 作者:行者123 更新时间:2023-12-05 04:53:47 26 4
gpt4 key购买 nike

我正在使用 GitHub 操作进行一些自动化测试,我的应用程序是在 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 容器的状态正常时启动单元案例?

最佳答案

我想提供一个解决方案,不是一个聪明的解决方案,但它需要最少的配置并准备就绪,只需使用 GitHub Action for Sleeping。

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Sleep for 30 seconds
uses: jakejarvis/wait-action@master
with:
time: '30s'

假设:您的 Mysql 服务器将在 30 秒内启动并运行。

关于docker - 如何在 GitHub 操作中等待容器健康?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65949957/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com