diff --git a/packages/docker-runner/Dockerfile b/packages/docker-runner/Dockerfile index 49fa86b8b..7ea587c31 100644 --- a/packages/docker-runner/Dockerfile +++ b/packages/docker-runner/Dockerfile @@ -10,7 +10,7 @@ RUN corepack enable \ && corepack prepare pnpm@10.5.0 --activate RUN apt-get update \ - && apt-get install -y --no-install-recommends git \ + && apt-get install -y --no-install-recommends git openssl \ && rm -rf /var/lib/apt/lists/* WORKDIR /workspace @@ -23,23 +23,26 @@ FROM base AS build COPY . . -# Avoid workspace-wide postinstall/prepare (platform-server runs prisma generate) RUN pnpm install --filter @agyn/docker-runner... --offline --frozen-lockfile --ignore-scripts RUN pnpm --filter @agyn/docker-runner run build -# pnpm deploy copies workspace deps and re-runs postinstall/prepare; skip scripts -RUN PNPM_SKIP_POSTINSTALL=1 PNPM_SKIP_PREPARE=1 npm_config_ignore_scripts=true pnpm deploy --filter @agyn/docker-runner --prod --legacy /opt/app +RUN PNPM_SKIP_POSTINSTALL=1 PNPM_SKIP_PREPARE=1 npm_config_ignore_scripts=true \ + pnpm deploy --filter @agyn/docker-runner --prod --legacy /opt/app + +RUN mkdir -p /opt/app/packages/docker-runner/dist \ + && cp -a /workspace/packages/docker-runner/dist/. /opt/app/packages/docker-runner/dist/ FROM node:20-slim AS runtime ENV NODE_ENV=production \ - PORT=7071 + DOCKER_RUNNER_HOST=0.0.0.0 \ + DOCKER_RUNNER_PORT=7071 WORKDIR /opt/app/packages/docker-runner RUN apt-get update \ - && apt-get install -y --no-install-recommends git \ + && apt-get install -y --no-install-recommends git openssl \ && rm -rf /var/lib/apt/lists/* COPY --from=build --chown=node:node /opt/app /opt/app diff --git a/packages/docker-runner/eslint.config.js b/packages/docker-runner/eslint.config.mjs similarity index 100% rename from packages/docker-runner/eslint.config.js rename to packages/docker-runner/eslint.config.mjs diff --git a/packages/docker-runner/package.json b/packages/docker-runner/package.json index 941443a00..f2c1fdac3 100644 --- a/packages/docker-runner/package.json +++ b/packages/docker-runner/package.json @@ -2,7 +2,6 @@ "name": "@agyn/docker-runner", "version": "1.0.0", "private": true, - "type": "module", "main": "src/index.ts", "scripts": { "dev": "tsx src/service/main.ts", diff --git a/packages/docker-runner/src/service/env.ts b/packages/docker-runner/src/service/env.ts index 2c569f815..517100d3c 100644 --- a/packages/docker-runner/src/service/env.ts +++ b/packages/docker-runner/src/service/env.ts @@ -1,13 +1,12 @@ import fs from 'node:fs'; import path from 'node:path'; -import { fileURLToPath } from 'node:url'; import { config } from 'dotenv'; const isProduction = () => process.env.NODE_ENV?.toLowerCase() === 'production'; function resolveCandidatePaths(): string[] { - const moduleDir = path.dirname(fileURLToPath(new URL('.', import.meta.url))); + const moduleDir = __dirname; const repoEnv = path.resolve(process.cwd(), '.env'); const packageEnv = path.resolve(moduleDir, '../../.env'); return [repoEnv, packageEnv]; diff --git a/packages/docker-runner/tsconfig.json b/packages/docker-runner/tsconfig.json index 777bb6885..672bbef46 100644 --- a/packages/docker-runner/tsconfig.json +++ b/packages/docker-runner/tsconfig.json @@ -1,6 +1,8 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { + "module": "CommonJS", + "moduleResolution": "Node", "rootDir": "src", "outDir": "dist", "tsBuildInfoFile": "./dist/tsconfig.tsbuildinfo",