Я пытаюсь заполнить базу данных PostgreSQL, когда запускаю команду docker -compose.
Проблема
Когда запускается мой сервер NodeJS, он автоматически создает таблицы внутри базы данных.
Это означает, что при запуске базы данных я не могу выполнять какие-либо запросы (поскольку таблицы не существуют).
Чтобы создать таблицы, мой сервер должен иметь соединение с база данных.
Это порочный цикл?
docker -компонентный файл
server-debug:
build:
context: ./services/server # Location of the Dockerfile
dockerfile: Dockerfile.debug # Which Dockerfile
volumes:
- './services/server:/usr/src/app'
- '/usr/src/app/node_modules'
environment:
- NODE_ENV=debug
depends_on:
- database-debug
database-debug:
build:
context: ./services/database
dockerfile: Dockerfile.debug
environment:
POSTGRES_URI: 'postgres://postgres:12345@database-debug:5432/postgres' # Connection string
POSTGRES_PASSWORD: 12345
ports:
- '5432:5432' # Local port : Remote port
Dockerfile сервера
FROM node:13.10
WORKDIR /usr/src/app
COPY package.json ./
COPY tsconfig.json ./
RUN npm install
COPY . .
CMD ["npm", "start"]
База данных Dockerfile
FROM postgres:12.2
# Create user and postgres
ENV POSTGRES_USER root
ENV POSTGRES_PASSWORD 12345
ENV POSTGRES_DB postgres
ENV POSTGRES_URI 'postgres://postgres:12345@database-debug:5432/postgres'
# COPY init.sql /docker-entrypoint-initdb.d/