| |
| |
| |
|
|
| ARG BASE_URL= |
|
|
| |
| FROM public.ecr.aws/docker/library/node:20-alpine AS builder |
| WORKDIR /app |
| COPY package*.json ./ |
| COPY vendor ./vendor |
| ENV HUSKY=0 |
| RUN npm config set fetch-retries 5 && \ |
| npm config set fetch-retry-mintimeout 60000 && \ |
| npm config set fetch-retry-maxtimeout 300000 && \ |
| npm config set fetch-timeout 600000 && \ |
| npm ci |
| COPY . . |
|
|
| ARG SIMPLE_MODE=false |
| ENV SIMPLE_MODE=$SIMPLE_MODE |
| ARG COMPRESSION_MODE=all |
| ENV COMPRESSION_MODE=$COMPRESSION_MODE |
|
|
| ARG BASE_URL |
| ENV BASE_URL=$BASE_URL |
|
|
| ARG VITE_WASM_PYMUPDF_URL |
| ARG VITE_WASM_GS_URL |
| ARG VITE_WASM_CPDF_URL |
| ENV VITE_WASM_PYMUPDF_URL=$VITE_WASM_PYMUPDF_URL |
| ENV VITE_WASM_GS_URL=$VITE_WASM_GS_URL |
| ENV VITE_WASM_CPDF_URL=$VITE_WASM_CPDF_URL |
|
|
| |
| ARG VITE_DEFAULT_LANGUAGE |
| ENV VITE_DEFAULT_LANGUAGE=$VITE_DEFAULT_LANGUAGE |
|
|
| |
| ARG VITE_BRAND_NAME |
| ARG VITE_BRAND_LOGO |
| ARG VITE_FOOTER_TEXT |
| ENV VITE_BRAND_NAME=$VITE_BRAND_NAME |
| ENV VITE_BRAND_LOGO=$VITE_BRAND_LOGO |
| ENV VITE_FOOTER_TEXT=$VITE_FOOTER_TEXT |
|
|
| ENV NODE_OPTIONS="--max-old-space-size=3072" |
|
|
| RUN npm run build:with-docs |
|
|
| |
| FROM nginx:stable-alpine-slim |
|
|
| LABEL org.opencontainers.image.source="https://github.com/alam00000/bentopdf" |
| LABEL org.opencontainers.image.url="https://github.com/alam00000/bentopdf" |
|
|
| ARG BASE_URL |
|
|
| ENV PUID=1000 |
| ENV PGID=1000 |
| ENV DISABLE_IPV6=false |
|
|
| RUN apk add --no-cache su-exec |
|
|
| COPY --from=builder /app/dist /usr/share/nginx/html${BASE_URL%/} |
| COPY nginx.conf /etc/nginx/nginx.conf |
| COPY --chmod=755 entrypoint.sh /entrypoint.sh |
|
|
| RUN mkdir -p /etc/nginx/tmp \ |
| /var/cache/nginx/client_temp \ |
| /var/cache/nginx/proxy_temp \ |
| /var/cache/nginx/fastcgi_temp \ |
| /var/cache/nginx/uwsgi_temp \ |
| /var/cache/nginx/scgi_temp |
|
|
| EXPOSE 8080 |
| ENTRYPOINT ["/entrypoint.sh"] |
| CMD ["nginx", "-g", "daemon off;"] |
|
|