fix: working elementary setup

This commit is contained in:
Stijnvandenbroek
2026-03-05 10:38:09 +00:00
parent 5058adf7dc
commit ca5cb9e777
4 changed files with 26 additions and 3 deletions

View File

@@ -5,6 +5,9 @@ WORKDIR /app
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
# Install system dependencies (git is required by elementary/dbt deps)
RUN apt-get update && apt-get install -y --no-install-recommends git && rm -rf /var/lib/apt/lists/*
# Install dependencies before copying full source (layer caching) # Install dependencies before copying full source (layer caching)
COPY pyproject.toml uv.lock* ./ COPY pyproject.toml uv.lock* ./
RUN uv sync --frozen --no-dev 2>/dev/null || uv sync --no-dev RUN uv sync --frozen --no-dev 2>/dev/null || uv sync --no-dev

View File

@@ -57,6 +57,9 @@ def elementary_run_models(context: OpExecutionContext) -> None:
raise Exception(f"dbt run elementary failed with exit code {result.returncode}") raise Exception(f"dbt run elementary failed with exit code {result.returncode}")
_EDR_REPORT_PATH = _DBT_DIR / "edr_target" / "elementary_report.html"
@op(ins={"after": In(Nothing)}) @op(ins={"after": In(Nothing)})
def elementary_generate_report(context: OpExecutionContext) -> None: def elementary_generate_report(context: OpExecutionContext) -> None:
"""Run edr report to regenerate the Elementary HTML report.""" """Run edr report to regenerate the Elementary HTML report."""
@@ -67,7 +70,8 @@ def elementary_generate_report(context: OpExecutionContext) -> None:
str(_DBT_DIR), str(_DBT_DIR),
"--project-dir", "--project-dir",
str(_DBT_DIR), str(_DBT_DIR),
"--disable-open-browser", "--file-path",
str(_EDR_REPORT_PATH),
] ]
context.log.info(f"Running: {' '.join(cmd)}") context.log.info(f"Running: {' '.join(cmd)}")
result = subprocess.run(cmd, capture_output=True, text=True) result = subprocess.run(cmd, capture_output=True, text=True)

View File

@@ -10,3 +10,16 @@ data_platform:
dbname: "{{ env_var('POSTGRES_DB') }}" dbname: "{{ env_var('POSTGRES_DB') }}"
schema: public schema: public
threads: 4 threads: 4
elementary:
target: "{{ env_var('DBT_TARGET', 'dev') }}"
outputs:
dev:
type: postgres
host: "{{ env_var('POSTGRES_HOST', 'localhost') }}"
port: "{{ env_var('POSTGRES_PORT', '5432') | int }}"
user: "{{ env_var('POSTGRES_USER') }}"
password: "{{ env_var('POSTGRES_PASSWORD') }}"
dbname: "{{ env_var('POSTGRES_DB') }}"
schema: elementary
threads: 4

View File

@@ -3,9 +3,12 @@ server {
server_name _; server_name _;
root /usr/share/nginx/html; root /usr/share/nginx/html;
index elementary_report.html;
location = / {
return 302 /elementary_report.html;
}
location / { location / {
try_files $uri $uri/ /elementary_report.html; try_files $uri =404;
} }
} }