해결된 질문
작성
·
716
0
[section27]
08-06 도커 패키징 강의 관련 내용입니다.
강의대로 똑같이 세팅하고 진행해보니, 빌드까지는 잘되지만 실행할 때 데이터베이스와 연결이 안되는 문제가 생깁니다.
Unable to connect to the database, Retrying... 에러가 뜨는데, 강의에서 말씀하셨듯이 데이터베이스 서버가 늦게 켜지는 문제라고 생각하고 계속 시도해도 똑같이 연결이 안됩니다.
세부 에러메시지가 다른 걸 보니 다른 문제같은데, 구글링해서 mysql 세팅도 바꿔보고 코드도 바꿔보고 이것저것 다 해봤는데 안돼서 이렇게 질문 남깁니다.
답변 1
0
안녕하세요! 건님!
데이터베이스가 아직 실행되지 않거나, 접속하기 어려운 상황인 경우 아래와 같은 에러 메시지를 확인하실 수 있습니다.
따라서, 건님이 올려주신 에러 메시지는 데이터베이스가 늦에 실행되서 접속되는 문제는 아닐 수 있어요!
해당 문제는 버전문제로 의심됩니다.
도커에서 실행중인 mysql 데이터베이스의 버전과 이를 연결하기 위해 백엔드에서 설치한 typeorm, mysql2 의 버전 문제를 의심해 볼 수 있습니다!
package.json에서 다음과 같이 시도해 보세요!
1. typeorm과 mysql 버전을 변경합니다.
"dependencies": {
...,
"typeorm": "0.3.12",
"mysql2": "3.2.0"
}
2. 이미 설치되어있는 node_modules나 dist 폴더가 있다면 삭제해 주세요.
3. 아래의 명령으로 docker를 모두 중지 및 삭제해 주세요.
docker-compose stop
docker-compose down
4. 다시 docker를 빌드하고 실행합니다.
docker-compose build
docker-compose up
만약 해당 버전으로 해결이 되지 않는다면, docker 내의 mysql 버전도 mysql:latest가 아닌 임의의 버전을 지정하여 동작시켜 보세요!