-
카테고리
-
세부 분야
데브옵스 · 인프라
-
해결 여부
미해결
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