README.md

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
  1. Запуск окружения
# Сборка и запуск контейнера
make up

# Запуск приложения
make run
  1. Подключение к 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.

Конвейеры
0 успешных
0 с ошибкой