У меня есть docker-compse.yaml:
version: '3.8'
services:
postgres:
image: postgres:latest
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: 123456
POSTGRES_DB: mydb
restart: always
ports:
- '5432:5432'
networks:
- kinonetwork
backend:
build:
context: ./backend
dockerfile: Dockerfile
env_file:
- ./backend/.env
ports:
- '4200:4200'
networks:
- kinonetwork
depends_on:
- postgres
Dockerfile:
# Build stage
FROM node:22.2.0 as build
WORKDIR /app
COPY package*.json yarn.lock ./
RUN yarn install --frozen-lockfile
COPY . .
RUN yarn prisma db push
RUN yarn prisma generate
# Build the application
RUN yarn build
# Production stage
FROM node:22.2.0
WORKDIR /app
COPY --from=build /app/node_modules ./node_modules
COPY --from=build /app/package*.json ./
COPY --from=build /app/dist ./dist
EXPOSE 4200
CMD [ "yarn", "start:prod" ]
В env файле:
DATABASE_URL="postgresql://postgres:123456@postgres:5432/mydb?schema=public"
Проблема возникает из-за того, что yarn build возникает раньше, чем запускается бд (наверное)
Ошибка:
2025-01-06 02:45:06 PrismaClientInitializationError: Can't reach database server at `postgres`:`5432`
2025-01-06 02:45:06
2025-01-06 02:45:06 Please make sure your database server is running at `postgres`:`5432`.
Я уже пробовал добавлять скрипты ожидания, но они не помогают