docker-compose up
docker-compose를 실행하는 과정에서 발생한 에러를 정리해보자.
Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
위 에러가 발생했다. MySQL 포트 번호를 3306으로 설정한 상황이었고, 어디선가 3306을 이미 사용했다고 말한다.
해결하기
netstat -ano | findstr :3306
입력tasklist | findstr 8360
으로 프로세스도 확인 가능taskkill /f /pid 8360
입력Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "./gradlew": stat ./gradlew: no such file or directory: unknown
./gradlew
파일을 찾을 수 없다고 한다. 분명히 있는데..
해결하기
./wanted:/wanted
를 ./:/wanted
로 바꿔주기
그냥 volumes 값을 잘못 입력한 거 였다 하하
끝인 줄 알았으나..
localhost:8080에 접속을 시도하면 실패했다. 로그를 확인해보니 크게 세 가지의 에러를 발견했다.
이들이 항상 함께 등장했다.
volumes를 절대경로로 바꾸어보고 mysql config 파일을 추가해보고 build도 새로 해보고.. 이것저것 다 해봤다. 심지어는 어떤 경우에는 성공했다가 동일한 조건의 다른 경우에는 되지 않기도 했다.
해결해놓고 보니 이렇게 이것저것 다 해보려고 한 게 독이었다.
반포기 상태로 기다리고 있는데
초반에는 에러가 수없이 뜨다가
점점 차분해지더니 결국 서버 접속에 성공했다.
내가 끝까지 기다리지 않고 에러를 쏟고 있는 상황을 벗어나려고 한 것이 문제였다.
최종적으로 서버에 접속하기 위한 명령어는 아래와 같다.
./gradlew build -x test
docker-compose build
docker-compose up
결과적으로, 나의 코드에는 문제가 없었고, 그냥 기다리면 되었던 것.
오늘의 교훈 : 기다려
정리가 잘 된 글이네요. 도움이 됐습니다.