• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

[강의 응용] springboot, vue.js, postgreSql

23.05.12 11:01 작성 조회수 576

1

- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)
- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다
- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

안녕하세요, 강의 바탕으로 개인 공부를 하다 막혀 질문드립니다.

springboot, vue.js, postgre로 게시판을 만들었는데요,

springboot 프로젝트 안에 application.yml 파일로 postgreSql DB를 연결을 했습니다. 그리고 vue.js도 빌드해서 springboot와 연동시켰습니다.

 

이런 경우에도 docker-compose에 백,프론트,DB 컨테이너를 다 넣어야하나요?

로컬에서는 잘 돌아가는데 docker run 하니까 네트워크 오류 메세지가 뜨면서 DB에 접근이 안되어서 여쭤봅니다. vue가 라우팅되면서 url 이 변하는데 이걸 연결시켜줘야하는지...

아무리 찾아봐도 시원한 대답이 없어서서 부득이하게 여기 질문을 남겨봅니다ㅠㅠ

 

답변 1

답변을 작성해보세요.

2

안녕하세요. 답변도우미입니다.

본 질문/답변란은 본 강의의 영상이 이해가 안갈 경우등에 대한 질문/답변란이라서요.

말씀하신 부분은 강의 영상에 대한 내용이 아닌 부분이라서, 양해를 부탁드립니다. 강의 자체가 평생 강의라서, 강의 영상이 아닌 각자 구현하시는 코드 관련 문의까지 평생 답변을 드리는 부분은 무리가 있어서요. 정확한 답변을 위해서는 저희도 구현을 해봐야 하는 것이기도 하고, 사실상 무리스러운 부분도 있어서, 이런 부분 양해부탁드리며, 정확하지 않더라도, 최대한 다음과 같은 참고 정보를 드립니다.

Docker를 사용하는 경우, 애플리케이션의 각 부분을 독립된 컨테이너로 분리하여 관리하는 것이 좋습니다. 따라서 백엔드(Spring Boot), 프론트엔드(Vue.js), 데이터베이스(PostgreSQL) 각각에 대한 컨테이너를 Docker Compose 파일에 작성하는 것이 좋습니다.

네트워크 오류 메시지가 뜨면서 DB 접근이 안되는 것은 아마도 Docker 내부의 다른 컨테이너에 접근하기 위한 설정이 잘못된 것으로 보입니다. 아래는 일반적인 Docker Compose 설정에 대한 예시입니다.

version: '3.8'
services:
  backend:
    build: ./backend
    ports:
      - "8080:8080"
    depends_on:
      - db
  frontend:
    build: ./frontend
    ports:
      - "80:80"
  db:
    image: "postgres:latest"
    environment:
      POSTGRES_USER: "your_username"
      POSTGRES_PASSWORD: "your_password"
      POSTGRES_DB: "your_database"
    ports:
      - "5432:5432"
    volumes:
      - db-data:/var/lib/postgresql/data

volumes:
  db-data:

이 설정에서 백엔드와 프론트엔드는 각각의 Dockerfile을 참조하고 있으며, 데이터베이스는 공식 PostgreSQL 이미지를 사용합니다. 또한, 볼륨을 사용하여 데이터를 저장하여 컨테이너가 삭제되어도 데이터가 유지되도록 합니다.

위 예시를 참고하여 Docker Compose 파일을 작성해보세요. 그리고 Spring Boot의 application.yml 파일에서 데이터베이스 접속 정보를 아래와 같이 수정해주세요:

spring:
  datasource:
    url: jdbc:postgresql://db:5432/your_database
    username: your_username
    password: your_password

여기서 db는 Docker Compose 파일에서 설정한 서비스 이름입니다. 이렇게 설정하면 Docker 내부에서 데이터베이스 컨테이너를 찾아 접속할 수 있습니다.

Vue.js 라우팅에 관해서는, 일반적으로 Vue.js와 Spring Boot 간의 통신 문제가 없다면 별도의 설정이 필요하지 않습니다. 혹시 문제가 발생한다면 구체적인 오류 메시지와 함께 질문을 다시 올려주시면 도움을 드리겠습니다.

마지막으로, 작성된 Docker Compose 파일을 실행하기 위해 docker-compose up -d 명령을 사용하세요. 이렇게 하면 각 서비스에 대한 컨테이너가 생성되고 실행됩니다.

이러한 정보를 참고하셔서, 도움이 되셨으면 좋겠습니다.

감사합니다.