From 47d1834edf91f3cf593ae0e27a664de677fe2873 Mon Sep 17 00:00:00 2001 From: Leonardo <leomilho@gmail.com> Date: Mon, 2 Dec 2024 18:20:57 +0100 Subject: [PATCH] fix(build): use bun docker image and use local path for imports to avoid rootDir error --- Dockerfile | 16 ++++++++-------- .../lib/components/featureFlags/featureFlags.ts | 3 +-- .../lib/vis/components/VisualizationPanel.tsx | 2 +- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6f421b1ba..6f10e2719 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,22 +1,22 @@ -FROM node:19-slim AS base -ENV BUN_HOME="/bun" -ENV PATH="$BUN_HOME:$PATH" -RUN corepack enable +FROM oven/bun:alpine AS base WORKDIR /app ARG IMAGE_TAG="dev-no-image-tag" ENV GRAPHPOLARIS_VERSION=$IMAGE_TAG FROM base AS install +WORKDIR /app COPY package.json ./ COPY bun.lockb ./ -COPY pnpm-workspace.yaml ./ COPY turbo.json ./ COPY apps/web/package.json ./apps/web/package.json COPY apps/docs/package.json ./apps/docs/package.json COPY libs/config/package.json ./libs/config/package.json COPY libs/shared/package.json ./libs/shared/package.json -RUN bun install --frozen-lockfile +COPY libs/workspace ./libs/workspace +# For some reason we need to first install to then be able to install for prod with frozen lockfile +RUN bun install +RUN bun install --frozen-lockfile --production FROM base AS build @@ -26,18 +26,18 @@ COPY libs /app/libs COPY --from=install /app /app # Fixes: FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory ENV NODE_OPTIONS="--max-old-space-size=8192" +ENV BUN_JSC_forceRAMSize="8192" RUN bun run build FROM base AS env-build # Automatically set by build process: https://docs.docker.com/reference/dockerfile/#automatic-platform-args-in-the-global-scope ARG TARGETARCH -RUN npm install -g pkg WORKDIR /app COPY --from=install /app/node_modules /app/node_modules RUN if [ "$TARGETARCH" = "arm64" ]; then ARCHITECTURE=arm64; else ARCHITECTURE=x64; fi \ && echo "System architecture: $ARCHITECTURE" \ - && npx pkg ./node_modules/@import-meta-env/cli/bin/import-meta-env.js --target node18-alpine-${ARCHITECTURE} --output import-meta-env-alpine + && bunx pkg ./node_modules/@import-meta-env/cli/bin/import-meta-env.js --target node18-alpine-${ARCHITECTURE} --output import-meta-env-alpine FROM nginx:1.25-alpine WORKDIR /app diff --git a/libs/shared/lib/components/featureFlags/featureFlags.ts b/libs/shared/lib/components/featureFlags/featureFlags.ts index 1f98e9b85..b3a8363cc 100644 --- a/libs/shared/lib/components/featureFlags/featureFlags.ts +++ b/libs/shared/lib/components/featureFlags/featureFlags.ts @@ -38,8 +38,7 @@ export const FEATURE_FLAGS = { export type FeatureFlagName = keyof typeof FEATURE_FLAGS; -const canViewFeature = (flagId: FeatureFlagName): boolean => { +export const canViewFeature = (flagId: FeatureFlagName): boolean => { return FEATURE_FLAGS[flagId]; }; -export { canViewFeature }; diff --git a/libs/shared/lib/vis/components/VisualizationPanel.tsx b/libs/shared/lib/vis/components/VisualizationPanel.tsx index 8222ea402..42092a6c1 100644 --- a/libs/shared/lib/vis/components/VisualizationPanel.tsx +++ b/libs/shared/lib/vis/components/VisualizationPanel.tsx @@ -17,7 +17,7 @@ import { updateVisualization, addVisualization } from '../../data-access/store/v import { VisualizationPropTypes, VISComponentType } from '../common'; import { ErrorBoundary } from '../../components/errorBoundary'; import { addError } from '../../data-access/store/configSlice'; -import { canViewFeature } from '@graphpolaris/shared/lib/components/featureFlags/featureFlags'; +import { canViewFeature } from '../../components/featureFlags'; type PromiseFunc = () => Promise<{ default: VISComponentType<any> }>; export const Visualizations: Record<string, PromiseFunc> = { -- GitLab