inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실리콘밸리 엔지니어와 함께하는 Docker

수고하셨습니다 🫡

docker 마지막 실습(app(flask) + mysql) 연동 과정

해결된 질문

63

ssung85

작성한 질문수 1

1

#compose.yml 파일 부분 수정

depends_on:
  -db

compose를 실행하는 과정에서 db가 app보다 먼저 실행되긴 하지만 db 커넥션이 준비되기전에 app이 실행되어 오류가 발생합니다.

 

depends_on:
  db:
    condition: service_healthy

db의 healthcheck 결과를 실제로 체크해서, healthycheck가 끝날때까지 기다렸다가 app이 실행되기에 오류를 해결할 수 있었습니다.

수강생분들 참고하시면 좋을꺼 같습니다.

좋은 강의 감사드립니다. 화이팅입니다.!!

docker container mysql db

답변 2

0

미쿡엔지니어

안녕하세요 강희성님,

좋은 코멘트 감사드립니다!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 강희성님.

Docker Compose에서 depends_on을 사용하여 서비스 간의 실행 순서를 조절하는 것은 매우 일반적인 문제점이죠. 특히 데이터베이스와 같은 서비스는 처음 시작될 때 준비 시간이 필요한 경우가 많기 때문에, healthcheck 옵션을 사용하여 다른 서비스가 데이터베이스가 준비된 후에 실행되도록 설정하는 것은 좋은 방법입니다.

Docker Compose에서 depends_onhealthcheck 사용

depends_on은 서비스가 시작되는 순서를 지정할 수 있게 해주지만, 실제로 서비스 간의 연결이 가능한지를 확인하지는 않습니다. 서비스가 “준비”된 시점이라고 하더라도 네트워크 연결이 가능하지 않을 수도 있기 때문입니다. 따라서 데이터베이스와 같은 서비스에 대해서는 healthcheck를 추가하여 서비스의 상태를 확인하는 것이 중요합니다.

예를 들어, MySQL을 사용하는 경우 다음과 같이 설정할 수 있습니다:

services:
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 10s
      timeout: 5s
      retries: 3
  app:
    image: your-flask-app
    depends_on:
      db:
        condition: service_healthy

이와 같이 설정하면 MySQL 컨테이너가 “healthy” 상태가 될 때까지 Flask 앱 컨테이너가 기다리게 됩니다.

이와 관련된 유용한 게시물을 다음 URL에서 확인하여 참고할 수 있습니다:
- Docker Compose에서 depends_on와 healthcheck 사용하기

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

p.created_at vs u.name 인덱스 문의

0

5

1

환경설정 스크립트에서 storageclass가 생성되지 않습니다.

0

8

2

콘솔 로그가 깨져나오는데 혹시 방법이 있을까요?

0

18

2

자료를 다운로드후 압축을 풀때 오류납니다.

0

16

2

pod kubetm/app 에서 image를 갑자기 못가져 오는거 같습니다.

0

9

2

이진 트리 노드

0

17

1

이지지 생성 노드를 커스텀 햇는데 워드프레스에 이미지 업로드가 안됨

0

16

2

조인의 특징

0

23

2

3. Node Schedule 중 pod-5가 마스터 노드에 배치됩니다.

1

22

2

실제 시험에서 링크

1

24

1

volume hostpath의 강의에 관해 질문이 있습니다.

1

23

2

댓글 삭제 로직에서 동시성 문제 발생 가능성

0

22

1

통계정보 갱신 질문

0

44

2

PK 관련하여 궁금한 점이 있어서 질문 드립니다.

0

41

2

재고 감소와 쿠폰 발급은 왜 서로 다른 방식으로 동시성을 제어하나요?

0

28

1

탐색을 한번 더 하지 않게 하는 방식 중 어댑티브 해시 방식도 맞는지 궁금 합니다.

0

38

2

차트시트 발송이 안되는 이유는 무엇일까요?

0

23

2

컬럼 크기가 대용량인 경우 DB 버퍼 풀에 전부 올라오는지 궁금합니다

0

35

2

n8n에서 오류가 발생했는데 어떻게 풀어야할까요?

0

25

2

실습데이터 ORDERS 생성 시간 질문요...

0

61

1

코드자료 활용 깃

1

55

2

apache spark -> airflow

0

185

2

mysql 포트 사용에 관하여

1

151

2

저만 안 되는 것인가요? ㅠㅠ

0

307

2