# Rentgen Browser Extension - Docker Build # # Usage: # Build and extract artifacts directly: # docker buildx build . --output artifacts # # Build with tests (typecheck + lint): # docker build --build-arg RUN_TESTS=true -t rentgen . # # Or traditional build (creates full development environment): # docker build -t rentgen . # docker run --rm rentgen ls -lh /app/web-ext-artifacts/ # # Run commands in the container: # docker run --rm rentgen npm run build:chrome # docker run --rm rentgen npm run typecheck # Build stage FROM node:lts AS builder # Optional: run tests during build (typecheck + lint) ARG RUN_TESTS=false WORKDIR /app # Copy package files for dependency installation (better layer caching) COPY package.json package-lock.json ./ # Install dependencies RUN npm install # Copy source code (respecting .dockerignore) COPY . . # Build the extension for Firefox (default) RUN npm run build # Create the package RUN npm run create-package # Optional: run quality checks RUN if [ "$RUN_TESTS" = "true" ]; then \ echo "Running TypeScript type checking..."; \ npm run typecheck; \ echo "Running web-ext lint..."; \ npm run lint; \ fi # Artifacts stage - only contains the built artifacts (for --output) FROM scratch AS artifacts # Copy only the built extension zip file to root COPY --from=builder /app/web-ext-artifacts/*.zip / # Default stage - full development environment FROM builder # Default command shows the built artifact CMD ["ls", "-lh", "/app/web-ext-artifacts/"]