인프런 커뮤니티 질문&답변
multi app부분 dev 환경 질문입니다.
작성
·
232
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: 3306docker-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'
이렇게 직접 적어줘야만 하는 것인지.. 다른 방법이 있는지..
답변 부탁드립니다.
답변
답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!




