diff --git a/Dockerfile b/Dockerfile index 1cec30f..dabd5a9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,24 +1,15 @@ -FROM oven/bun:1 AS bun - -FROM node:20-trixie-slim - +FROM oven/bun:1.2.22 AS bun +FROM node:22.19.0-trixie-slim COPY --from=bun /usr/local/bin/bun \ /usr/local/bin/bunx \ /usr/local/bin/ WORKDIR /app - COPY ./ ./ RUN bun install --frozen-lockfile && \ - npm run build && \ - npm run lint:tsc && \ - # npm run lint:eslint && \ - npm run clean:cache && \ -\ - npm run clean:node && \ - bun install --frozen-lockfile --production && \ - find node_modules/proxy-from-env -type f -exec chmod 644 {} \; && \ - npx -w packages/server prisma generate && \ -\ - cd cms && \ - bun install --frozen-lockfile --production && \ - npm run build + bun lint:tsc && \ + bun --cwd=./packages/server bun:build && \ + bun --cwd=./packages/server node:build && \ + bun --cwd=./packages/webapp build && \ + bun clean:cache && \ + bun clean:node && \ + bun install --frozen-lockfile --production diff --git a/bun.lock b/bun.lock index b2dab9c..e625c8c 100644 --- a/bun.lock +++ b/bun.lock @@ -36,6 +36,7 @@ "effect": "^3.17.13", }, "devDependencies": { + "esbuild": "^0.25.9", "tsx": "^4.20.5", }, }, diff --git a/compose.yml b/compose.yml index ae6288d..24c0e97 100644 --- a/compose.yml +++ b/compose.yml @@ -11,7 +11,7 @@ x-env-base: &env-base services: server: <<: *service-base - image: node:20 + image: node:22.19.0 volumes: - *volume-app working_dir: /app/packages/server @@ -22,7 +22,7 @@ services: cli: <<: *service-base - image: oven/bun:latest + image: oven/bun:1.2.22 volumes: - *volume-app working_dir: /app @@ -35,7 +35,7 @@ services: webapp: <<: *service-base - image: node:20 + image: node:22.19.0 ports: - ${PORT:?PORT missing}:80 volumes: diff --git a/package.json b/package.json index a7fd466..03f077e 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,10 @@ "private": true, "workspaces": ["./packages/*"], "scripts": { - "lint:tsc": "turbo lint:tsc" + "lint:tsc": "turbo lint:tsc", + "clean:cache": "turbo clean:cache && rm -rf .turbo", + "clean:dist": "turbo clean:dist && rm -rf dist", + "clean:node": "turbo clean:node && rm -rf node_modules" }, "devDependencies": { "@effect/language-service": "^0.40.0", diff --git a/packages/common/package.json b/packages/common/package.json index 0ea2d38..91bd79f 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -8,7 +8,8 @@ "./*": "./src/*.ts" }, "scripts": { - "lint:tsc": "tsc --noEmit" + "lint:tsc": "tsc --noEmit", + "clean:node": "rm -rf node_modules" }, "dependencies": { "@effect/rpc": "^0.69.2", diff --git a/packages/server/package.json b/packages/server/package.json index eb98341..2f4ef27 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -3,9 +3,15 @@ "private": true, "type": "module", "scripts": { + "lint:tsc": "tsc --noEmit", "bun:dev": "NODE_ENV=development bun --hot ./src/entrypoint.bun.ts", + "bun:build": "esbuild ./src/entrypoint.bun.ts --outdir=./dist --bundle --minify --format=esm --sourcemap --platform=node", + "bun:start": "NODE_ENV=production bun ./dist/entrypoint.bun.js", "node:dev": "NODE_ENV=development tsx --watch ./src/entrypoint.node.ts", - "lint:tsc": "tsc --noEmit" + "node:build": "esbuild ./src/entrypoint.node.ts --outdir=./dist --bundle --minify --format=esm --sourcemap --platform=node", + "node:start": "NODE_ENV=production node ./dist/entrypoint.node.js", + "clean:dist": "rm -rf dist", + "clean:node": "rm -rf node_modules" }, "dependencies": { "@effect/opentelemetry": "^0.56.6", @@ -22,6 +28,7 @@ "effect": "^3.17.13" }, "devDependencies": { + "esbuild": "^0.25.9", "tsx": "^4.20.5" } } diff --git a/packages/webapp/package.json b/packages/webapp/package.json index 765117a..a537c51 100644 --- a/packages/webapp/package.json +++ b/packages/webapp/package.json @@ -8,7 +8,9 @@ "build": "tsc -b && vite build", "lint": "eslint .", "lint:tsc": "tsc --noEmit", - "preview": "vite preview" + "preview": "vite preview", + "clean:dist": "rm -rf dist", + "clean:node": "rm -rf node_modules" }, "dependencies": { "@effect/platform": "^0.90.9", diff --git a/turbo.json b/turbo.json index 0c4fc0b..9ca2209 100644 --- a/turbo.json +++ b/turbo.json @@ -2,24 +2,12 @@ "$schema": "https://turbo.build/schema.json", "tasks": { - "build": { - "dependsOn": ["^build"], - "inputs": ["src/**"], - "outputs": ["dist/**"], - "cache": false - }, - "lint:tsc": { "cache": false }, "lint:eslint": { "cache": false }, - - "clean:cache": { - "dependsOn": ["^clean:cache"], - "cache": false - }, "clean:dist": { "dependsOn": ["^clean:dist"], "cache": false