rentgen/Dockerfile
Jacek Wielemborek f41ccda54d feat(docker): dodaj opcjonalne uruchomienie testów podczas buildu
Dodano build arg RUN_TESTS (domyślnie false), który pozwala na
warunkowe uruchomienie quality checks (typecheck + lint) podczas
budowania obrazu Docker.

Użycie:
- Bez testów: docker build -t rentgen .
- Z testami: docker build --build-arg RUN_TESTS=true -t rentgen .

Testy dodają ~10 sekund do czasu buildu.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-25 14:16:16 +02:00

60 lines
1.5 KiB
Docker

# 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/"]