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

116 lines
4.1 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### Stocks
Backend stocks v0.1
Repository name: `em-shop`
--------------------------------------------------------------------
*cheat sheet:*
```sh
# Запуск сервера в 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
```
--------------------------------------------------------------------
#### Общие сведения
Для успешного запуска и функционирования требуются следующий файл конфигурации:
```yml
env_file:
- ./config.env
```
В `config.env` указываюся переменные:
(Используйте эти значения только для разработки)
```conf
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 контейнере:
```yml
volumes:
- .:/app:rw
```
что необходимо для внесения изменений в код без пересборки контейнера.
В `profuction` режиме сборка осуществляется обычно, `node_modules` и все файлы находятся внутри образа, никаких дополнительных команд, volumes, не используется.