요약
Github Actions의 hosted runner(예: ubuntu-latest)에는 Docker가 기본적으로 설치되어 있다. 따라서 services 블록에 이미지를 명시하면 Github Actions가 내부적으로 Docker를 사용해 컨테이너를 자동으로 띄워준다.
jobs:
test:
runs-on: ubuntu-latest # 여기에 Docker가 이미 포함되어 있음
services:
redis:
image: redis:7 # GitHub Actions가 알아서 docker pull → docker run
ports:
- 6379:6379
options: >-
--health-cmd "redis-cli ping"
--health-interval 5s
--health-timeout 3s
--health-retries 5 # Redis가 완전히 뜰 때까지 대기
steps:
- uses: actions/checkout@v3
- name: Run tests
run: ./gradlew test
추가 정보
- options의 health check 부분: Redis가 완전히 준비되기 전에 테스트가 먼저 실행되는 것을 방지하는 기능을 한다.
- --health-cmd "redis-cli ping": 컨테이너가 정상인지 확인하는 문법. 정상인 경우 "PONG"으로 응답한다.
- --health-interval 5s: 5초마다 헬스체크를 시도한다.
- --health-timeout 3s: 헬스체크 요청 이후 3초 안에 응답이 없으면 실패로 간주한다.
- --health-retries 5: 최대 5번까지 헬스체크 요청을 하고, 이 안에 성공하지 않으면 컨테이너를 unhealthy로 간주한다.
- >-: yaml에서 여러 줄을 입력할 때 사용하는 문법으로, 여러 줄을 한 줄로 이어 붙여 주는 문법.

'Projects > [Spring] Ticketing App Project' 카테고리의 다른 글
| [AWS] (2부) EC2 배포 성공기 (0) | 2026.03.19 |
|---|---|
| [AWS] (1부) EC2 서버 체크하기, ElastiCache 생성 및 연결하기 (2) | 2026.03.18 |
| [Test] 분명 사용되지 않아서 지웠는데, 왜 테스트가 실패할까? (0) | 2026.03.16 |
| [Test] Mock과 MockBean은 뭐가 다른 걸까? (0) | 2026.03.16 |
| [Ticketing App Project] 우당탕탕 프로파일 분리와 파라미터 스토어 연결 성공기 (0) | 2026.03.15 |