Skip to content

Commit 2ea91ce

Browse files
committed
More fixes
1 parent 0bc82ff commit 2ea91ce

File tree

3 files changed

+601
-5
lines changed

3 files changed

+601
-5
lines changed

dg_projects/edxorg/Dockerfile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ WORKDIR /app
1515
# Copy the entire workspace structure needed for uv
1616
COPY packages/ol-orchestrate-lib packages/ol-orchestrate-lib
1717
COPY dg_projects/edxorg dg_projects/edxorg
18+
COPY src/ol_dbt src/ol_dbt
1819

1920
# Install dependencies from the edxorg project
2021
WORKDIR /app/dg_projects/edxorg
@@ -26,6 +27,12 @@ RUN --mount=type=cache,target=/root/.cache/uv \
2627
RUN --mount=type=cache,target=/root/.cache/uv \
2728
uv sync --frozen --no-dev --no-editable
2829

30+
# Compile dbt to generate manifest.json (CRITICAL for @dbt_assets)
31+
WORKDIR /app/src/ol_dbt
32+
RUN /app/dg_projects/edxorg/.venv/bin/dbt deps && \
33+
/app/dg_projects/edxorg/.venv/bin/dbt compile --target production || \
34+
/app/dg_projects/edxorg/.venv/bin/dbt compile --target dev
35+
2936

3037
# Then, use a final image without uv
3138
FROM python:3.13-slim-bookworm
@@ -34,6 +41,7 @@ FROM python:3.13-slim-bookworm
3441

3542
# Copy the application from the builder
3643
COPY --from=builder /app/dg_projects/edxorg /app
44+
COPY --from=builder /app/src/ol_dbt /app/ol_dbt
3745

3846
# Place executables in the environment at the front of the path
3947
ENV PATH="/app/.venv/bin:$PATH"

dg_projects/edxorg/edxorg/definitions.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import os
1010
from functools import partial
11+
from pathlib import Path
1112
from typing import Any, Literal
1213

1314
from dagster import (
@@ -21,15 +22,12 @@
2122
job,
2223
)
2324
from dagster_aws.s3 import S3Resource
24-
from dagster_dbt import DbtCliResource, dbt_assets
25+
from dagster_dbt import DbtCliResource, DbtProject, dbt_assets
2526
from ol_orchestrate.io_managers.filepath import (
2627
FileObjectIOManager,
2728
S3FileObjectIOManager,
2829
)
2930
from ol_orchestrate.lib.constants import DAGSTER_ENV, VAULT_ADDRESS
30-
31-
# Import dbt project
32-
from ol_orchestrate.lib.dbt_project import dbt_project
3331
from ol_orchestrate.lib.utils import authenticate_vault
3432
from ol_orchestrate.resources.gcp_gcs import GCSConnection
3533
from ol_orchestrate.resources.github import GithubApiClientFactory
@@ -69,6 +67,16 @@
6967
upload_files_to_s3,
7068
)
7169

70+
# Initialize dbt project - handle both local dev and Docker paths
71+
if Path("/app/ol_dbt").exists():
72+
# In Docker container
73+
DBT_PROJECT_DIR = Path("/app/ol_dbt")
74+
else:
75+
# Local development
76+
DBT_PROJECT_DIR = Path(__file__).resolve().parents[3] / "src" / "ol_dbt"
77+
78+
dbt_project = DbtProject(project_dir=DBT_PROJECT_DIR)
79+
7280
# Initialize vault with resilient loading
7381
try:
7482
vault = authenticate_vault(DAGSTER_ENV, VAULT_ADDRESS)
@@ -288,7 +296,7 @@ def edxorg_dbt_assets(context: AssetExecutionContext, dbt: DbtCliResource):
288296
sync_edxorg_program_reports,
289297
],
290298
assets=[
291-
edxorg_dbt_assets,
299+
edxorg_dbt_assets, # Re-enable dbt assets
292300
edxorg_raw_data_archive.to_source_asset(),
293301
edxorg_raw_tracking_logs.to_source_asset(),
294302
normalize_edxorg_tracking_log,

0 commit comments

Comments
 (0)