fix: working elementary setup
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user