Home [Docker] docker--compose.yml을 정의하여 Spring boot app 과 MySQL 앱 동시에 실행할때 Connection Link Failure 에러 해결하기
Post
Cancel

[Docker] docker--compose.yml을 정의하여 Spring boot app 과 MySQL 앱 동시에 실행할때 Connection Link Failure 에러 해결하기

내가 정의한 커스텀 MySql 이미지와 Spring Boot 서버를 docker-compose를 실행하는데 Connection Link Failure에러가 자꾸 났다.

원인은 의외의 곳에 있었다.

커스텀 MySql 이미지가 다 실행되기도 전에 Spring Boot 서버가 실행되었기 때문이다.

사실 depends_on: - safe-place-db

구문이 실행되면 실행의 순서가 보장되리라고 생각했는데, 실제로는 safe-place-db가 up 될때까지 보장해주는 것이었다. up이 된 순간 부터는 두가지 컨테이너가 동시에 실행되는 것이다.

따라서 docker-compose.ymlrestart: on-failure:10 을 추가하여 수정했다.

추가한 구문은 실패할때 10번까지 재실행을 허용하라는 의미이다. 보통 safe-place-db에서 sql 스크립트에대한 실행이 없을때는 depends on 구문으로 충돌이 나는 경우는 없지만 이번 경우는 달랐다.

완성된 docker-compose.yml 은 다음과 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
version: "3"
services:
    safe-place-db:
        container_name: safe-place-db
        image: kimwithglasses/safe-place-db:0.0.1
        ports:
          - 3305:3306        

    safe-place-api:
        container_name: safe-place-api
        image: kimwithglasses/safe-place-api:0.0.1
        restart: on-failure:10
        #build: .
        ports:
          - 80:8080
        depends_on:
          - safe-place-db
This post is licensed under CC BY 4.0 by the author.

[Spring Boot] Spring 2.x 버전에서 JAR로 Packaging 하는 것에 대하여

[Travis CI] docker image 빌드하여 dockerhub에 푸시작업 자동화하기

Comments powered by Disqus.

Trending Tags