• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

multi app부분 dev 환경 질문입니다.

23.01.01 16:28 작성 조회수 153

0

안녕하세요.

docker-multi-app 에서 docker-compose-dev.yml 파일을 이용해서

로컬환경에서 화면을 띄워보고 있는데요..

const mysql = require("mysql");
const pool = mysql.createPool({
    connectionLimit: 10,
    host: process.env.MYSQL_HOST,
    user: process.env.MYSQL_USER,
    password: process.env.MYSQL_ROOT_PASSWORD,
    database: process.env.MYSQL_DATABASE,
    port: process.env.MYSQL_PORT
});

exports.pool = pool;

backend/db.js 에서 위처럼 하면 로컬 화면에서 db 연결이 안되는 것 같습니다..

const pool = mysql.createPool({ connectionLimit: 10, host: 'mysql', user: 'root', password: '1234', database: 'myapp' . . . . .

직접 적어주면 잘 동작합니다.

 

  backend:
    build:
      dockerfile: Dockerfile.dev
      context: ./backend
    container_name: app_backend
    volumes:
      - /app/node_modules
      - ./backend:/app

  mysql:
    build: ./mysql
    restart: unless-stopped
    container_name: app_mysql
    ports:
      - "3306:3306"
    volumes:
      - ./mysql/mysql_data:/var/lib/mysql
      - ./mysql/sqls/:/docker-entrypoint-initdb.d/
    environment:
      MYSQL_ROOT_PASSWORD: 1234
      MYSQL_DATABASE: myapp
      MYSQL_HOST: mysql
      MYSQL_USER: root
      # MYSQL_PORT: 3306

docker-compose-dev.yml 파일을 위처럼 작성하고,

docker compose -f docker-compose-dev.yml up --build . . . . .

db.js파일에서 docker-compose-dev.yml의 로컬db서버 환경변수를 가져올거라 생각했는데..

왜 직접 적어줄때만 되고, ... 환경변수? process.env.xxx는 안되는 걸까요?

 

docker-compose-dev.yml 파일로 개발환경을 셋팅해서 정상적인 동작을 보려면

mysql.createPool({ connectionLimit: 10, host: 'mysql', user: 'root', password: '1234', database: 'myapp'

이렇게 직접 적어줘야만 하는 것인지.. 다른 방법이 있는지..

답변 부탁드립니다.

답변 0

답변을 작성해보세요.

답변을 기다리고 있는 질문이에요.
첫번째 답변을 남겨보세요!