Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions packages/docker-runner/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
1 change: 0 additions & 1 deletion packages/docker-runner/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
3 changes: 1 addition & 2 deletions packages/docker-runner/src/service/env.ts
Original file line number Diff line number Diff line change
@@ -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];
Expand Down
2 changes: 2 additions & 0 deletions packages/docker-runner/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"module": "CommonJS",
"moduleResolution": "Node",
"rootDir": "src",
"outDir": "dist",
"tsBuildInfoFile": "./dist/tsconfig.tsbuildinfo",
Expand Down