46 lines
1.3 KiB
Makefile
46 lines
1.3 KiB
Makefile
# Income Calculator — сборка и запуск в Docker
|
|
|
|
IMAGE := income-calculator
|
|
CONTAINER := income-calculator
|
|
PORT := 8000
|
|
DATA_VOLUME := income_calculator_data
|
|
STATEMENTS_DIR := Выписки банков
|
|
|
|
.PHONY: build run stop logs shell clean help
|
|
|
|
help:
|
|
@echo "Доступные цели:"
|
|
@echo " make build — собрать образ Docker"
|
|
@echo " make run — запустить контейнер (порт $(PORT), volume для БД и папки выписок)"
|
|
@echo " make stop — остановить и удалить контейнер"
|
|
@echo " make logs — показать логи контейнера"
|
|
@echo " make shell — войти в shell контейнера"
|
|
@echo " make clean — остановить контейнер и удалить образ"
|
|
|
|
build:
|
|
docker build -t $(IMAGE) .
|
|
|
|
run: build
|
|
@mkdir -p '$(STATEMENTS_DIR)'
|
|
docker run -d \
|
|
-p $(PORT):8000 \
|
|
-v $(DATA_VOLUME):/data \
|
|
-v "$$(pwd)/$(STATEMENTS_DIR):/app/statements" \
|
|
-e STATEMENTS_DIR=/app/statements \
|
|
--name $(CONTAINER) \
|
|
$(IMAGE)
|
|
@echo "Приложение: http://127.0.0.1:$(PORT)"
|
|
|
|
stop:
|
|
-docker stop $(CONTAINER)
|
|
-docker rm $(CONTAINER)
|
|
|
|
logs:
|
|
docker logs -f $(CONTAINER)
|
|
|
|
shell:
|
|
docker exec -it $(CONTAINER) /bin/bash
|
|
|
|
clean: stop
|
|
-docker rmi $(IMAGE)
|