Clojure CLI Development Base
Базовое приложение для разработки на Clojure программ командной строки (CLI). Готовое Docker-окружение с предустановленными утилитами для комфортной работы с Clojure внутри контейнера, включая инструменты для nvim.
🚀 Особенности 🐳 Docker-окружение: Изолированная среда разработки
🛠️ Полный набор инструментов: Clojure CLI, Java, утилиты для разработки
⚡ Готовность к работе: Настроенный nREPL для IDE
📝 Интеграция с nvim: Предустановленные утилиты для редактора
🧪 Тестирование: Настроенный Kaocha для тестов
📦 Что внутри
.
├── _docker/app/Dockerfile # Конфигурация Docker-образа
├── docker-compose.yml # Оркестрация контейнеров
├── deps.edn # Зависимости Clojure
├── tests.edn # Конфигурация тестов
├── src/app/core.clj # Пример основного модуля
├── test/app/core_test.clj # Пример тестов
└── Makefile # Утилиты для разработки
⚡ Быстрый старт 1. Клонирование и настройка
git clone https://gitflic.ru/project/konkin/slj_base_docker_cli.git
cd slj_base_docker_cli
export PROJECT_NAME=my-clojure-app
- Запуск окружения
# Сборка и запуск контейнера
make up
# Запуск приложения
make run
- Подключение к nREPL nREPL сервер доступен на localhost:5000. Подключитесь из вашей IDE:
Neovim: Через Conjure
🛠️ Доступные команды
# Запуск тестов
make testing
# Перезапуск окружения
make restart
# Остановка окружения
make stop
# Переустановка окружения
make build
🔧 Инструменты в контейнере
-
Clojure CLI + последняя версия Clojure
-
Java (из базового образа Clojure)
-
nREPL + CIDER nREPL для IDE интеграции
-
Kaocha для тестирования
-
Утилиты: curl, git, wget, rlwrap
-
Инструменты для nvim: clojure-lsp, clj-kondo
📝 Пример использования Разработка приложения Редактируйте код в src/app/
Тестируйте в test/app/
Запускайте через Makefile
# Создание нового namespace
mkdir -p src/app/my_module
touch src/app/my_module/core.clj
# Добавление тестов
mkdir -p test/app/my_module
touch test/app/my_module/core_test.clj
Работа с REPL
bash
# Подключение к REPL
docker-compose exec app clojure -M:repl
# Или прямое выполнение кода
docker-compose exec app clojure -e "(println \"Hello from REPL\")"
⚙️ Конфигурация Переменные окружения Создайте .env файл для кастомизации:
#env
DOMAIN=local.local
PROJECT_NAME=cli_app
🐛 Отладка
# Логи контейнера
docker-compose logs app
# Вход в контейнер
docker-compose exec app bash
# Проверка здоровья
docker-compose ps
📦 Зависимости Управление зависимостями через deps.edn:
{:deps {org.clojure/clojure {:mvn/version "1.11.1"}
; добавьте свои зависимости здесь
}
:aliases {:dev {:extra-deps {}}}}
🤝 Contributing
-
Форкните репозиторий
-
Создайте feature branch
-
Commit ваши изменения
-
Push в branch
-
Создайте Pull Request
📄 Лицензия Этот проект лицензирован под MIT License - смотрите файл LICENSE для деталей.
🙏 Благодарности Сообществу Clojure за отличные инструменты
Разработчикам Docker и docker-compose
Сообществу Neovim за прекрасные плагины
Happy Clojuring! 🚀
Описание
Докер-контейнер содержит утилиты и программы, необходимые для разработки на Clojure.