цель - закинуть мой 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);
                  
                  
                      }
                  
                  
                  };
                  
                  
                
docker не может поднять контейнер postgres, потому что на хосте уже занят порт 5432. но тебе и не нужно его пробрасывать, если база вне контейнеров никем не используется. docker-compose создает между контейнерами сеть, и они могут между собой общаться друг с другом без проброса каких-либо портов
Вроде это усвоил Получается мне нужно из docker-compose.yml убрать ports и оно будет работать?
Я так сделал, перебилдил docker-compose build, ошибка осталась. Значит, не доделал я. Может переменные env убрать или ещё что
как теперь выглядит docker-compose.yml?
Обсуждают сегодня