172 похожих чатов

Здравствуйте! ✋ У меня имеются проблемы с поднятием контейнера. Моя конечная

цель - закинуть мой fullstack проект на бесплатный хостинг Heroku, это мой курсовой проект. Какие действия мне нужно сделать, чтобы цель была выполнена, а также чтобы своё приложение я мог в будущем дорабатывать? ЛЮБЫМ СОВЕТАМ БУДУ РАД!
Исправляйте всё, что не нравится. Я в этом слаб

🖥
Front: React, MobX, Axios
Back: Express NodeJS, PostgreSQL, Sequilize

📉
Проблема при поднятии:
"ERROR: for postgres Cannot start service postgres: driver failed programming external connectivity on endpoint postgres (d5e3f9ddc48936865621985364001777eccdae36ce1eb2e44f78bf1e49a7fe07): Error starting userland proxy: listen tcp4 0.0.0.0:5432: bind: address already in use
ERROR: Encountered errors while bringing up the project."

⚙️
1) Мой Docker файл:
FROM node:13.3-alpine
WORKDIR /app
COPY package*.json ./
RUN yarn install
COPY . .
EXPOSE 6789
CMD yarn run start

⚙️
2) docker-compose.yml:
version: '3.0'

services:
main:
container_name: main
build:
context: .
env_file:
- .env
volumes:
- .:/app
- /app/node_modules
ports:
- 6789:6789
command: yarn run start
depends_on:
- postgres
restart: always
postgres:
container_name: postgres
image: postgres:13
env_file:
- .env
environment:
PG_DATA: /var/lib/postgres/data
POSTGRES_PASSWORD: password
volumes:
- pgdata:/var/lib/postgres/data
ports:
- 5432:5432
restart: always
volumes:
pgdata:

⚙️
3) .env(здесь поменял с localhost на postgres хост, как по видео)
PORT=6789
POSTGRES_NAME=CoursesDataBase
POSTGRES_USER=postgres
POSTGRES_PASSWORD=password
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
SECRET_KEY=my_project_is_the_best

⚙️
4) db.js
const { Sequelize } = require('sequelize');
module.exports = new Sequelize(
process.env.POSTGRES_NAME,
process.env.POSTGRES_USER,
process.env.POSTGRES_PASSWORD, {
dialect: 'postgres',
host: process.env.POSTGRES_HOST,
port: process.env.POSTGRES_PORT
}
);

⚙️
5) index.js(кусок, могу полный кинуть)
const PORT = process.env.PORT || 6789;
const start = async () => {
try {
await sequelize.authenticate();
await sequelize.sync({alter: true}); // синхронизация
app.listen(PORT, () => console.log(Server started: ${PORT}));
} catch (e) {
console.log(e);
}
};

5 ответов

7 просмотров

docker не может поднять контейнер postgres, потому что на хосте уже занят порт 5432. но тебе и не нужно его пробрасывать, если база вне контейнеров никем не используется. docker-compose создает между контейнерами сеть, и они могут между собой общаться друг с другом без проброса каких-либо портов

Ivan-Mehedov Автор вопроса
Максим Мартынов
docker не может поднять контейнер postgres, потому...

Вроде это усвоил Получается мне нужно из docker-compose.yml убрать ports и оно будет работать?

Ivan-Mehedov Автор вопроса
Максим Мартынов
да

Я так сделал, перебилдил docker-compose build, ошибка осталась. Значит, не доделал я. Может переменные env убрать или ещё что

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Привет, запускаю werf в dind в k8s, получаю ошибку на этапе build/beforeSetup: /.werf/stapel/embedded/bin/bash: /.werf/scripts/5898bdfe5214357d3706b879cc8d3d78460fb379607cbd...
florius0
4
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Подскажите, можно ведь комбинировать запись данных в один и тот же Stream через TFileStream и через TCompressionStream поочерёдно? Ну т.е. часть данных мне нужно сжать, часть ...
notme
4
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Ребят, кто сталкивался с тем, что Electron.js не разворачивает билд React.js-приложения? Голый body в чёрном цвете, как и должно быть, но остального - нет. Билд работает исп...
..
6
Карта сайта