Projects/[Spring] Ticketing App Project

[Github] Runner 서버에 Docker를 설치해야 할까?

montmer27 2026. 3. 16. 19:47
요약
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에서 여러 줄을 입력할 때 사용하는 문법으로, 여러 줄을 한 줄로 이어 붙여 주는 문법.

Docker