Docker не загружает миграции и сиды в бд

dockerfile

FROM node:10 AS cps-build

WORKDIR /usr/src/app

COPY . .

ARG NODE_ENV=production

ENV NODE_ENV=${NODE_ENV}

RUN cd backend && npm install --production

RUN cd frontend && npm install --production && npm run build

WORKDIR /usr/src/app/backend

EXPOSE 3000

RUN npm run migrate:prod

RUN npm run seeds:prod

CMD ["npm","run","start"]

docker-compose

version: '3'
services:
  postgres:
    image: postgres
    environment:
      POSTGRES_PASSWORD: cogniteq_profitable_system
      POSTGRES_USER: cogniteq_profitable_system
      POSTGRES_DB:  cogniteq_profitable_system
    ports:
      - '5432:5432'
    restart: always
  app:
    container_name: cps
    restart: always
    build: .
    ports:
      - '3000:3000'
    links:
      - postgres

ошибка введите сюда описание изображения

==================================

введите сюда описание изображения

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Sergei Kirjanov

RUN npm ... отрабатывает при сборке образа (docker build).

В этот момент базы рядом нет.

Обращаться к базе можно из скрипта, прописанного в CMD:

  • обращаться из самой программы на старте
  • или описать скрипт в package.json

При этом необходимо обеспечить идемпотентность migrate/seeds, чтоб они при перезапуске ничего не сломали

→ Ссылка