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