116 lines
4.1 KiB
Markdown
116 lines
4.1 KiB
Markdown
|
|
|||
|
### 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, не используется.
|
|||
|
|