em-shop/stocks/README.md
2024-11-20 09:53:03 +05:00

4.1 KiB
Executable File
Raw Permalink Blame History

Stocks

Backend stocks v0.1 Repository name: em-shop


cheat sheet:

# Запуск сервера в production mode:
sudo bash run.prod.sh
sudo docker compose up -d --build --force-recreate

# Запуск сервера в development mode:
sudo bash run.dev.sh
sudo docker compose -f docker-compose.dev.yml up --build --force-recreate

# Подключение к консоли контейнера:
sudo docker exec -it stocks sh
sudo docker exec -it stocks-dev sh

sudo docker start stocks
sudo docker stop stocks

sudo docker start stocks-dev
sudo docker stop stocks-dev


Общие сведения

Для успешного запуска и функционирования требуются следующий файл конфигурации:

    env_file:
      - ./config.env

В config.env указываюся переменные: (Используйте эти значения только для разработки)

    PORT=3001
    URL=/stocks/api

    POSTGRES_HOST=postgres
    POSTGRES_PORT=5432
    POSTGRES_USER=postgres
    POSTGRES_DB=postgres
    POSTGRES_PASSWORD=2wroxrnr8fdxicvw2nsd

    RABBITMQ_HOST=rabbitmq
    RABBITMQ_PORT=5672
    RABBITMQ_USER=rabbit
    RABBITMQ_PASSWORD=5jbya3ptfrezyop6gy8w
    RABBITMQ_VHOST=vrabbit

Production mode:

Режим запуска сервера по умолчанию. Конфигурация описана в docker-compose.yml Запуск сервера осуществляется простой командой:

docker compose up -d

После изменений в образе, запуск производится с пересборкой образа:

docker compose up -d --build --force-recreate

Для быстрого удобного запуска предусмотрен скрипт run.prod.sh, который выполняет команду выше.

Пояснения: Запуск производится по средствам выполнения в образе команды:

command: ["node", "src/index.js"]

Development mode:

Запуск сервера в режиме разработки. Требуется указать соответствующий образ:

docker compose -f docker-compose.dev.yml up -d

После изменений в образе, запуск производится с пересборкой образа:

docker compose -f docker-compose.dev.yml up -d --build --force-recreate

Для быстрого удобного запуска предусмотрен скрипт run.dev.sh, который выполняет команду выше.

Пояснения: Запуск производится по средствам выполнения в образе команды:

command: sh -c "npm install && npm run start:dev"

start:dev описана в package.json и содержит следующую команду:

nodemon ./src/index.js

причем, перед запуском сервера выполняется установка npm install, что необходимо для корректного прозрачного отображения папки node_modules в каталоге, что бы в процессе разработки у IDE был доступ к этой папке для корректного анализа, и подсветки кода в IDE.

Так же, весь каталог с репозиторием монтируется в режиме записи в как корневой /app в Docker контейнере:

volumes:
      - .:/app:rw

что необходимо для внесения изменений в код без пересборки контейнера.

В profuction режиме сборка осуществляется обычно, node_modules и все файлы находятся внутри образа, никаких дополнительных команд, volumes, не используется.