Как мне в докере запустить app + postgres?
Нужно для начала локально запустить app + postgres а потом на сервере.
Есть БД posgres. Вот ее настройки: файл .env
PORT=5000
CLIENT_URL:http://localhost:5000
API_URL=http://localhost:5000
HOST="wfwef"
DB_HOST="wfwef"
DB_PORT=5432
DB_NAME="wfwef"
DB_USER="wfwef"
DB_PASSWORD="wfwef"
SMTP_HOST=smtp."wfwef"
SMTP_PORT=465
SMTP_USER="wfwef"
SMTP_PASSWORD="wfwef"
ADMIN_EMAIL="wfwef"
Я создаю image и запускаю docker-compose.yaml Файл docker-compose.yaml
version: '3.5'
services:
db_vertex:
container_name: db_vertex
ports:
- "5432:5432"
environment:
- POSTGRES_PASSWORD="wfwef"
- POSTGRES_USER="wfwef"
image: postgres:14.3-bullseye
Далее я вижу, что контейнер с БД запущен и даже когда я пытаюсь локально подключиться к этой бд запустив мое приложение - все получается. Далее я хочу засунуть app в контейнер и так-же запустить его чтобы потом смог сделать тоже самое на сервере. Создаю Dockerfile
FROM node
WORKDIR /app
COPY package.json /app/
RUN npm install
COPY . .
ENV PORT 5000
EXPOSE $PORT
CMD [ "npm","run", "dev" ]
После получаю image от которого запускаю контейнер и получаю ошибку. В чем я ошибся и как это испровить? Ошибка:
ConnectionRefusedError [SequelizeConnectionRefusedError]: connect ECONNREFUSED 127.0.0.1:5432
at Client._connectionCallback (/app/node_modules/sequelize/lib/dialects/postgres/connection-manager.js:130:24)
at Client._handleErrorWhileConnecting (/app/node_modules/pg/lib/client.js:305:19)
at Client._handleErrorEvent (/app/node_modules/pg/lib/client.js:315:19)
at Connection.emit (node:events:527:28)
at Socket.reportStreamError (/app/node_modules/pg/lib/connection.js:52:12)
at Socket.emit (node:events:527:28)
at emitErrorNT (node:internal/streams/destroy:151:8)
at emitErrorCloseNT (node:internal/streams/destroy:116:3)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
parent: Error: connect ECONNREFUSED 127.0.0.1:5432
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1195:16) {
errno: -111,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 5432
},
original: Error: connect ECONNREFUSED 127.0.0.1:5432
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1195:16) {
errno: -111,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 5432
}
}