116 lines
4.1 KiB
Markdown
Executable File
116 lines
4.1 KiB
Markdown
Executable File
|
||
### History
|
||
|
||
Backend history 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 history sh
|
||
sudo docker exec -it history-dev sh
|
||
|
||
sudo docker start history
|
||
sudo docker stop history
|
||
|
||
sudo docker start history-dev
|
||
sudo docker stop history-dev
|
||
|
||
```
|
||
--------------------------------------------------------------------
|
||
|
||
|
||
#### Общие сведения
|
||
|
||
Для успешного запуска и функционирования требуются следующий файл конфигурации:
|
||
```yml
|
||
env_file:
|
||
- ./config.env
|
||
```
|
||
|
||
В `config.env` указываюся переменные:
|
||
(Используйте эти значения только для разработки)
|
||
|
||
```conf
|
||
PORT=3002
|
||
URL=/history/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, не используется.
|
||
|