springboot에서 docker에 mongodb 연결하기
처음에는 도커 쉘에서 작업을 진행하다가
도저히 뭔가 아닌 것 같아서 인텔리제이의 터미널에서 작업을 해보았다..
첫번째로
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 사이트와 어플리케이션에서의 데이터베이스가 달랐던것 ㅠㅠ
저 데이터베이스 이름을 적었더니 실행됐따!!!!!!!
도커쉘에서 확인해보니 아주 잘 돌아가고있군>_<
너무 행벅~~~~~~~