디펜던시 체크 필요성과 방법
- 분산 애플리케이션의 경우 이상이 생긴 컨테이너를 교체할 때 컨테이너 간 의존 관계를 고려해야 한다.
- 의존 관계를 만족하는지 점검하는 디펜던시 체크 기능을 도커 이미지에 추가하여 애플리케이션 실행 전에 필요한 요구 사항을 확인한다.
- 디펜던시 체크가 성공하면 애플리케이션이 실행되고 실패하면 애플리케이션이 실행되지 않는다.
- 애플리케이션 실행 명령에 로직을 추가하는 방법으로 구현
Dockerfile 적용
- API 사용 가능 여부에 따라 애플리케이션을 실행할 지 결정
001) FROM diamol/dotnet-aspnet
002)
003) ENV RngApi:Url=http://numbers-api/rng
004)
005) CMD curl --fail http://numbers-api/rng && \
006) dotnet Numbers.Web.dll
007)
008) WORKDIR /app
009) COPY --from=builder /out/ .
- 005: CMD 명령은 컨테이너를 실행할 때 실행 &&는 앞에 오는 명령이 성공하면 뒤에 오는 명령을 실행 API를 사용할 수 없다면 curl 명령이 실패하고 컨테이너가 그대로 종료
- 006: 닷넷 코어 애플리케이션 실행 명령