em-shop/stocks/README.md

116 lines
4.1 KiB
Markdown
Raw Normal View History

2024-11-20 09:53:03 +05:00
### 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, не используется.