인프런 커뮤니티 질문&답변

jay kang님의 프로필 이미지

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

docker-compose 실행후 페이지 실행안됨

해결된 질문

작성

·

648

0

nest.js docker파일을 실행하였는데 정상적으로 돌아가는데 이상하게 매번

[Nest] 42 - 08/13/2023, 7:22:38 AM ERROR [ExceptionHandler] Access denied for user ''@'172.19.0.3' (using password: YES)

이 오류가 나더라구요 그래서 확인해보니까 user 권한을 주면된다는데 제가 env파일 root로 두개다 설정을 했는데 왜 저러는지 모르겠는거랑 error에 user부분이 ''이렇게만 나오는 이유를 잘모르겠습니다

그리고 페이지에 들어가니 페이지가 작동되지않는다는 오류와 전송된 데이터가 없다는 오류만 나옵니다.


FROM node:16

COPY ./package.json /myfolder/
COPY ./yarn.lock /myfolder/
WORKDIR /myfolder/ 
RUN yarn install
# packge.json이 변경되지않았는데 매번 새롭게 다운받는게 비효율적이라서 packge.json과 yarn.lock을 미리 복사
# 캐시에서 확인할때 변경되지않으면 다음부터는 다운받지않고 바로 가져올수있기때문에

# 코드를 변경하면 이부분만 캐시가 깨지기때문에 속도가 더빠르다
COPY . /myfolder/ 
# WORKDIR /myfolder/ 
# RUN yarn install
# . 했을 당시의 소스코드를 기억함으로 캐시에서의 소스코드와 다르면 다시 카피해서 가져옴
# 한번 캐시가 깨지기 시작하면 그아래부분부터는 전부깨서 전부다시 다운받거나 새로시작 -> 어디가 변경된지 몰라서 영향을 줄수있기때문에


CMD yarn start:dev
version: '3.7'

# 컴퓨터들
# 들여쓰기가 부모자식관계로 인식해서 중요함
services:
  # 변수명처럼 자유롭게 작성할수있음 / 컴퓨터명
  my-backend:
    build:
      # 파일경로
      context: .
      # 파일명
      dockerfile: Dockerfile
    volumes:
      - ./src:/myfolder/src
    # 포트포워딩
    ports:
      - 3000:3000
    env_file:
      - ./.env.docker # 도커를 실행할때 사용하는 환경변수파일설정

  my-database:
    # platform: linux/86_64 # cpu등의 문제가있을때
    # 설치해서 바로실행되는경우 dockerfile없이
    image: mysql:latest
    # mysql은 비밀번호가 있어야지 작동한다 설치하고 사용할 database도 만들어주어야 작동한다
    # mysql에 접속해서 자동적으로 myproject명으로 설정된 데이터베이스를 만들어준다
    environment:
      MYSQL_DATABASE: 'starbucksDB'
      MYSQL_ROOT_PASSWORD: 'root' # 처음으로 들어갈때 비밀번호를 설정
    ports:
      - 3306:3306
      # 하지만 네임리졸루션으로 express에서 접속가능

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.
문제의 오류 메시지를 보면 사용자 접근 권한과 관련된 문제가 있어 보입니다.

오류 메시지에 따르면 빈 사용자(“)가 ‘172.19.0.3’에서 접속하여 암호를 사용하여 액세스하려고 시도했지만 액세스가 거부되었다고 나와있습니다. 이 문제는 데이터베이스 사용자의 암호가 잘못되었거나 사용자에게 적절한 권한이 부여되지 않았을 때 발생할 수 있는 문제입니다.

.env 파일에 작성한 값을 docker-compose.yml 파일에서 환경 변수로 사용하고 계신 것 같습니다. .env 파일 안에 루트 사용자 이름과 비밀번호를 설정하셨다면, 이 값을 docker-compose.yml 파일에 적용시켜야 합니다.

예를 들어, docker-compose.yml 파일에서 아래와 같이 환경 변수를 설정할 수 있습니다.

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    environment:
      - MYSQL_USER=root
      - MYSQL_PASSWORD=password

다시 한 번 확인해보시고, 사용자 접근 권한과 관련된 오류는 이 문제를 해결하는 데 도움이 될 것입니다.

이외에 페이지 작동되지 않거나 전송된 데이터가 없는 오류에 대해서는 더 많은 정보가 필요합니다. 이 오류가 발생하는 상황에서 콘솔 로그를 확인하거나 네트워크 요청/응답을 분석하여 원인을 파악할 수 있습니다. 또한, Nest.js 프레임워크의 구성이나 코드 일부를 참고하면 도움이 될 수 있습니다. 좀 더 구체적인 정보를 제공해주시면 더 정확한 도움을 드릴 수 있을 것입니다.
요청하신 내용은 전송된 데이터와 페이지 작동 오류에 대한 것이었습니다.
더 도움이 필요하시다면 자세한 내용을 알려주세요. 감사합니다.

jay kang님의 프로필 이미지

작성한 질문수

질문하기