diff --git a/packages/docker-runner/Dockerfile b/packages/docker-runner/Dockerfile index 7ea587c31..78ffd5b42 100644 --- a/packages/docker-runner/Dockerfile +++ b/packages/docker-runner/Dockerfile @@ -43,12 +43,17 @@ WORKDIR /opt/app/packages/docker-runner RUN apt-get update \ && apt-get install -y --no-install-recommends git openssl \ + && npm install --global tsx@^4.20.5 \ + && npm cache clean --force \ && rm -rf /var/lib/apt/lists/* COPY --from=build --chown=node:node /opt/app /opt/app +COPY --from=build --chown=node:node /workspace/packages/docker-runner/package.json /opt/app/packages/docker-runner/package.json +COPY --from=build --chown=node:node /workspace/packages/docker-runner/src /opt/app/packages/docker-runner/src +COPY --from=build --chown=node:node /workspace/packages/docker-runner/tsconfig.json /opt/app/packages/docker-runner/tsconfig.json USER node EXPOSE 7071 -CMD ["node", "dist/service/main.js"] +CMD ["tsx", "src/service/main.ts"] diff --git a/packages/docker-runner/package.json b/packages/docker-runner/package.json index f2c1fdac3..941443a00 100644 --- a/packages/docker-runner/package.json +++ b/packages/docker-runner/package.json @@ -2,6 +2,7 @@ "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 517100d3c..c624585af 100644 --- a/packages/docker-runner/src/service/env.ts +++ b/packages/docker-runner/src/service/env.ts @@ -1,12 +1,13 @@ 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 = __dirname; + const moduleDir = path.dirname(fileURLToPath(import.meta.url)); 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 672bbef46..523994211 100644 --- a/packages/docker-runner/tsconfig.json +++ b/packages/docker-runner/tsconfig.json @@ -1,10 +1,12 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { - "module": "CommonJS", - "moduleResolution": "Node", + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "Bundler", "rootDir": "src", "outDir": "dist", + "declaration": true, "tsBuildInfoFile": "./dist/tsconfig.tsbuildinfo", "composite": true, "types": ["node"]