Compare commits

...
2 Commits
Author SHA1 Message Date
tanshu 7813ffbc66 Trying a better build system. 2026-09-15 16:34:39 +00:00
tanshu d28918992a Build failed due to hatch vcs 2026-09-15 16:26:28 +00:00
3 changed files with 10 additions and 19 deletions
+4 -4
View File
@@ -69,6 +69,9 @@ WORKDIR /app/
# Ref: https://docs.astral.sh/uv/guides/integration/docker/#using-the-environment
ENV PATH="/app/.venv/bin:$PATH"
# Pass version from Makefile to setuptools-scm since .git is not in context
ARG SETUPTOOLS_SCM_PRETEND_VERSION_FOR_BREWMAN
ENV SETUPTOOLS_SCM_PRETEND_VERSION_FOR_BREWMAN=$SETUPTOOLS_SCM_PRETEND_VERSION_FOR_BREWMAN
# Install dependencies
# Ref: https://docs.astral.sh/uv/guides/integration/docker/#intermediate-layers
@@ -83,11 +86,8 @@ COPY --from=builder /frontend/browser /app/frontend
# Sync the project
# Ref: https://docs.astral.sh/uv/guides/integration/docker/#intermediate-layers
RUN --mount=type=cache,target=/root/.cache/uv \
--mount=type=bind,source=brewman/uv.lock,target=uv.lock \
--mount=type=bind,source=brewman/pyproject.toml,target=pyproject.toml \
uv sync --locked
uv sync --locked --no-editable
ENV PYTHONPATH=/app
EXPOSE 80
RUN chmod 777 /app/docker-entrypoint.sh \
+4 -12
View File
@@ -1,17 +1,13 @@
.PHONY: build-production
build-production: ## Build the production container image. Usage: make build-production TAG=15.4.0
@echo "Cloning repository..."
@rm -rf .tmp-brewman
@git clone --depth 1 $(if $(TAG),--branch v$(TAG)) git@git.tanshu.com:tanshu/brewman.git .tmp-brewman
@echo "Building image..."
@podman manifest rm registry.tanshu.com/brewman:latest 2>/dev/null || true
@podman build \
--platform linux/amd64,linux/arm64 \
--manifest registry.tanshu.com/brewman:latest \
--pull \
.tmp-brewman || (rm -rf .tmp-brewman && exit 1)
@rm -rf .tmp-brewman
--build-arg SETUPTOOLS_SCM_PRETEND_VERSION_FOR_BREWMAN=$(TAG) \
git@git.tanshu.com:tanshu/brewman.git#v$(TAG)
@echo "Pushing manifests..."
@podman manifest push --all registry.tanshu.com/brewman:latest docker://registry.tanshu.com/brewman:latest
@@ -19,15 +15,11 @@ build-production: ## Build the production container image. Usage: make build-pro
.PHONY: build-check
build-check: ## Multi-arch build without push (compile check). Usage: make build-check TAG=15.4.0
@echo "Cloning repository..."
@rm -rf .tmp-brewman
@git clone --depth 1 $(if $(TAG),--branch v$(TAG)) git@git.tanshu.com:tanshu/brewman.git .tmp-brewman
@echo "Building image..."
@podman manifest rm brewman:test 2>/dev/null || true
@podman build \
--platform linux/amd64,linux/arm64 \
--manifest brewman:test \
--pull \
.tmp-brewman || (rm -rf .tmp-brewman && exit 1)
@rm -rf .tmp-brewman
--build-arg SETUPTOOLS_SCM_PRETEND_VERSION_FOR_BREWMAN=$(TAG) \
git@git.tanshu.com:tanshu/brewman.git#v$(TAG)
+2 -3
View File
@@ -1,6 +1,5 @@
[project]
name = "brewman"
dynamic = ["version"]
description = "Accounting plus inventory management for a restaurant."
requires-python = ">=3.14"
authors = [{ name = "tanshu", email = "git@tanshu.com" }]
@@ -24,6 +23,7 @@ dependencies = [
"sqlalchemy>=2.0.52",
"uvicorn[standard]>=0.52.4",
]
dynamic = ["version"]
[dependency-groups]
dev = [
@@ -37,12 +37,11 @@ dev = [
]
[build-system]
requires = ["hatchling", "hatch-vcs"]
requires = ["hatch-vcs", "hatchling"]
build-backend = "hatchling.build"
[tool.hatch.version]
source = "vcs"
raw-options = { root = "..", fallback_version = "0.0.0" }
[tool.hatch.build.hooks.vcs]
version-file = "brewman/_version.py"