RDS DB 연결 및 Docker 컨테이너 실행

parkjh9370·2022년 5월 10일
0

💬 RDS 연결 및 도커 환경 구축 과정에서 만났던 에러와 이를 해결하기 위해 해주었던 설정


🔎 RDS

  • RDS 생성 후 인바운드 규칙 편집을 통해 접근을 허용 해 주어야 함

  • RDS DB 접근

mysql -u root --host [host명(엔드포인트)] -P [포트번호] -p

ex)
mysql -u root --host with-you-camping.czqtqicux1bl.ap-northeast-2.rds.amazonaws.com -P 13306 -p

  • DB 내 모든 Table 삭제 하기
SET @tables = NULL;

SELECT GROUP_CONCAT(table_schema, '.', table_name) INTO @tables
  FROM information_schema.tables
  WHERE table_schema = 'DB이름 입력';

SET @tables = CONCAT('DROP TABLE ', @tables);

PREPARE stmt FROM @tables;

EXECUTE stmt;

DEALLOCATE PREPARE stmt;

🔎 Docker

  • volume에 node_modules 및 bcrypt 설정을 안해 주었을 시
    bcrypt_lib.node: invalid ELF header 에러 발생
version: "3"
services:
  server:          
      build:
        dockerfile: Dockerfile
        context: ./
      container_name: docker_server
      restart: unless-stopped
      ports:
        - "8080:8080"
      volumes: 
          - ./:/app
          - /app/node_modules/
          - /app/node_modules/bcrypt/

# 도커 컨테이너 실행 시
# package.json / script: "start": "NODE_ENV=production nodemon app.js " 수정
# docker-compose up 명령어 입력
  • 확실히 해주기 위해 dockerignore 추가

.dockerignore

node_modules
  • Dockerfile npm install 전에 package.json 복사

Dockerfile

FROM node:16.13.0

WORKDIR /app

COPY ./package.json ./

RUN npm install

COPY ./ ./

CMD ["npm","run","start"]

0개의 댓글