코딩 공부

springboot에서 docker에 mongodb 연결하기

챠나 2023. 7. 20. 04:23

처음에는 도커 쉘에서 작업을 진행하다가

도저히 뭔가 아닌 것 같아서 인텔리제이의 터미널에서 작업을 해보았다..

 

첫번째로

docker build -f Dockerfile .

명령어를 실행했는데 failed가 되었다... 

계속 뭔가 jar 파일을 못찾고 있다고 뜨는데 왜 못찾느거지..ㅠㅠㅠㅠ

빌드가 잘못되고 있나??

아!!!!!! 그때 머리 속에 번뜩 생각남

CICD할때 Gradle에 들어가서 build를 했던 그때!!!!!!!

성공했따.......빌드 성공ㄱ~!!!

다시 명령어를 해보니 아주 잘되었따 쿄쿄쿄쿄쿄 

역시 cicd 나를 괴롭게하더니....... 나를 이렇게 성장시켜주었어

아주 기특해 나자신

 

그다음 명령어인

docker-compose up -d 를 실행하는데 또 failed...

이제 익숙하지 ^^

docker-compose.yml 파일

version: "3"
services:
  app:
    build: src/main/java
    restart: always
    ports:
      - 5501:5501
    links:
      - mongo
    depends_on:
      - mongo
    networks:
      - main-network

  mongo:
    image: "mongo:new"
    container_name: mongo
    hostname: mongo
    networks:
      - main-network
    environment:
      - MONGO_INITDB_ROOT_USERNAME=soolo
      - MONGO_INITDB_ROOT_PASSWORD=soolo
      - MONGO_INITDB_DATABASE=sooloChat
    restart: always
    ports:
      - 27017:27017
    command: [ "--bind_ip", "0.0.0.0" ]
    volumes:
      - mongodata:/data/db

volumes:
  mongodata:
networks:
  main-network:
    driver: bridge

Dockerfile

FROM openjdk:17
LABEL maintainer="soolo"
VOLUME /main-app
ADD build/libs/SooloChat-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 5501
ENTRYPOINT ["java","-Dspring.data.mongodb.uri=mongodb+srv://soolo:soolo@cluster0.nnm1vfo.mongodb.net/?retryWrites=true&w=majority","-jar","app.jar"]

이렇게 작성되어있는데

처음에는 명령어를 

docker build -f Dockerfile . 로 해서 자꾸 오류가 났다. (사진은 오타)

 

그래서 두번째 생각한 것이 image 이름이지 않을까? 해서 Soolochat . 을 넣었더니 성공ㄱ!!!!!!!!

 

헷갈릴거 같아서 mongo:6.0.8 으로 변경해서 한번 더 실행~

계속 실험을 한 후 이미지 파일을 실행시키는데

docker run -p 5501:5501 mongo:new

(채팅서버 포트는 5501로 설정을 해놓았음)

 

드이어 성공인가 싶더니

이번엔 database name empty! 라고 느낌표까지 씨게 박아준다^^ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

대체 왜 비어있다는거니쥬ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ


아하?????? mongodb의 데이터베이스 이름을 잘못적엇다!!!!!

왜인지 모르겠으나.. mongodb 사이트와 어플리케이션에서의 데이터베이스가 달랐던것 ㅠㅠ

저 데이터베이스 이름을 적었더니 실행됐따!!!!!!!

도커쉘에서 확인해보니 아주 잘 돌아가고있군>_<

너무 행벅~~~~~~~