docker-compose실행시 순차 실행을 위한 dockerize 사용

nawnoes·2020년 3월 24일
1

docker-compose실행시 순차 실행을 위한 dockerize 사용

나의 경우 docker-compose 실행시 이미지를 이용해 mongodb를 사용한다. 하지만 nodejs 서버와 함께 docker-compose up 실행시 error가 발생.

에러 부분

express 서버 내에 mongoose를 불러와서 connect 하는 부분에서 에러

import mongoose from 'mongoose';

...중략...

mongoose.Promise =global.Promise;
mongoose.connect(DOCKER_DATABASE_URL); <== 에러 발생 부분

...중략...

조치 방법

Dockerfile 안에 wait-for-it이나 dockerize와 같은 툴 이용하는 방법이 있다. 나의 경우 dockerize를 이용해서 몽고디비 기동 후 express 서버가 기동 되도록 조치했다.

RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \  
    && tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz

ENTRYPOINT ["dockerize", "-wait", "tcp://DB경로:DB포트", "-timeout", "20s"]

로 mongoDB로부터 응답이 온 후에 express server를 호출하도록 Dockerfile을 수정

References

0개의 댓글