From f70a893fd4599847b90ece19188991f083e0db70 Mon Sep 17 00:00:00 2001 From: klemek Date: Sat, 11 Apr 2026 18:58:05 +0200 Subject: [PATCH] feat: dockerfile --- Dockerfile | 16 ++++++++++++++++ Makefile | 15 ++++++++++++++- README.md | 7 ++++++- 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..60eabe5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM python:3.14-alpine + +WORKDIR /app + +VOLUME [ "/app/data" ] + +RUN PIP_ROOT_USER_ACTION=ignore python3 -m pip install uv + +COPY uv.lock pyproject.toml ./ + +RUN uv sync --no-dev + +COPY main.py ./ +COPY src ./src/ + +ENTRYPOINT [ "uv", "run", "--no-sync", "main.py" ] \ No newline at end of file diff --git a/Makefile b/Makefile index 59370ad..374e52f 100644 --- a/Makefile +++ b/Makefile @@ -8,6 +8,8 @@ endif RUFF ?= $(UV) run ruff TY ?= $(UV) run ty +DOCKER ?= docker +DOCKER_TAG ?= localhost/stapler:latest # DOCS @@ -52,10 +54,21 @@ ruff-format-check: .venv ## ruff format (check only) ty: .venv ## ty check @$(TY) check +.PHONY: docker-build +docker-build: ## docker build + @$(DOCKER) build . -t $(DOCKER_TAG) + +.PHONY: docker-run +docker-run: docker-build ## docker run + @$(DOCKER) run -it -p 8080:8080 -v ./data:/app/data $(DOCKER_TAG) + # ACTIONS .PHONY: format format: ruff-fix ruff-format ## format project .PHONY: lint -lint: ruff ruff-format-check ty ## lint project \ No newline at end of file +lint: ruff ruff-format-check ty ## lint project + +.PHONY: start +start: docker-run ## start server in localhost diff --git a/README.md b/README.md index 1457b9e..e4d901a 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ options: ## TODO - [x] basic http server -- [ ] docker container +- [x] docker container - [ ] env instead of args when available - [ ] POST gzip data into /data/xxx - [ ] DELETE request @@ -43,11 +43,16 @@ ruff-fix ruff check (and fix) ruff-format ruff format ruff-format-check ruff format (check only) ty ty check +docker-build docker build +docker-run docker run format format project lint lint project +start start server in localhost Environment: UV = uv RUFF = uv run ruff TY = uv run ty +DOCKER = docker +DOCKER_TAG = localhost/stapler:latest ```