From 746e509d69a7991520b91017c8ed153b51cda6ed Mon Sep 17 00:00:00 2001 From: Petr Korolev Date: Sun, 25 Jan 2026 01:35:08 -0300 Subject: [PATCH 1/2] Update Dockerfile to store Deno cache outside of /app for offline operation and include package.json in the build context. --- backend/Dockerfile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/backend/Dockerfile b/backend/Dockerfile index 8cee6829..4c244a10 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -4,9 +4,14 @@ RUN apt-get update && apt-get install -y ffmpeg && rm -rf /var/lib/apt/lists/* EXPOSE 5173 WORKDIR /app + +# Store Deno cache outside /app so it survives volume mounts (enables offline operation) +ENV DENO_DIR=/deno-dir ENV NODE_ENV=production + COPY ./backend/deno.lock /app/deno.lock COPY ./backend/deno.json /app/deno.json +COPY ./backend/package.json /app/package.json RUN DENO_FUTURE=1 deno install --lock=deno.lock COPY ./myceliasdk /myceliasdk COPY ./backend . /app/ From 5f2e9a43d87ab97b970d30d706237a6a1efa510a Mon Sep 17 00:00:00 2001 From: Petr Korolev Date: Mon, 26 Jan 2026 01:02:31 -0300 Subject: [PATCH 2/2] Update Docker configuration for offline development mode - Changed the Deno command in docker-compose.yml to use 'dev:offline'. - Added a new 'dev:offline' task in deno.json for offline development. - Updated Dockerfile to install dependencies without node_modules and pre-cache imports for offline use. --- backend/Dockerfile | 11 ++++++++++- backend/deno.json | 3 ++- docker-compose.yml | 5 +++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index 4c244a10..e393d022 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -9,10 +9,19 @@ WORKDIR /app ENV DENO_DIR=/deno-dir ENV NODE_ENV=production +# Copy config files for dependency caching COPY ./backend/deno.lock /app/deno.lock COPY ./backend/deno.json /app/deno.json COPY ./backend/package.json /app/package.json -RUN DENO_FUTURE=1 deno install --lock=deno.lock + +# Install and cache all dependencies (both JSR and npm packages) +RUN DENO_FUTURE=1 deno install --lock=deno.lock --node-modules-dir=false + +# Copy source files COPY ./myceliasdk /myceliasdk COPY ./backend . /app/ + +# Pre-cache all imports from the main entry point to ensure everything is available offline +RUN deno cache --lock=deno.lock server.ts + CMD ["deno", "run", "-A", "server.ts", "serve", "--prod"] diff --git a/backend/deno.json b/backend/deno.json index 144a0061..9db77fd6 100644 --- a/backend/deno.json +++ b/backend/deno.json @@ -1,6 +1,7 @@ { "tasks": { - "dev": "deno run --watch -A server.ts serve" + "dev": "deno run --watch -A server.ts serve", + "dev:offline": "deno run --watch -A --node-modules-dir=false server.ts serve" }, "lint": { "rules": { diff --git a/docker-compose.yml b/docker-compose.yml index e264dd1e..dce56858 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -31,7 +31,7 @@ services: limits: cpus: '2.0' memory: 4G - + # mongo-search: # image: mongodb/mongodb-community-search:latest # entrypoint: ["/mongot-entrypoint.sh"] @@ -64,13 +64,14 @@ services: expose: - "5173" restart: always - command: deno task dev + command: deno task dev:offline env_file: - .env environment: REDIS_HOST: redis REDIS_PORT: 6379 PYTHON_WORKER_URL: http://python-worker:8000 + DENO_DIR: /deno-dir volumes: - ./backend:/app - ./myceliasdk:/myceliasdk