FROM node:20-alpine AS cms-builder WORKDIR /cms COPY cms/package*.json . RUN npm ci COPY cms/ . ARG VITE_API_BASE_URL ARG VITE_SHOP_FIAT_CURRENCY ARG VITE_PRODUCT_THUMB_ALLOWED_MIMES ARG VITE_PRODUCT_THUMB_MAX_FILE_BYTES ARG VITE_SHOP_LOGO_ALLOWED_MIMES ARG VITE_SHOP_LOGO_MAX_FILE_BYTES ARG VITE_SHOP_FAVICON_ALLOWED_MIMES ARG VITE_SHOP_FAVICON_MAX_FILE_BYTES ARG VITE_DIGITAL_STOCK_ATTACHMENT_ALLOWED_MIMES ARG VITE_DIGITAL_STOCK_ATTACHMENT_MAX_FILE_BYTES ARG VITE_VALIDATION_PRODUCT_TITLE_MAX_LENGTH ARG VITE_VALIDATION_CATEGORY_NAME_MAX_LENGTH ARG VITE_VALIDATION_DISCOUNT_CODE_MAX_LENGTH ARG VITE_VALIDATION_VARIANT_IMAGES_MAX ARG VITE_VALIDATION_DIGITAL_STOCK_ATTACHMENTS_MAX ARG VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH ARG VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH ARG VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH ARG VITE_ORDERS_DETAIL_POLL_INTERVAL_MS ENV VITE_API_BASE_URL=$VITE_API_BASE_URL \ VITE_SHOP_FIAT_CURRENCY=$VITE_SHOP_FIAT_CURRENCY \ VITE_PRODUCT_THUMB_ALLOWED_MIMES=$VITE_PRODUCT_THUMB_ALLOWED_MIMES \ VITE_PRODUCT_THUMB_MAX_FILE_BYTES=$VITE_PRODUCT_THUMB_MAX_FILE_BYTES \ VITE_SHOP_LOGO_ALLOWED_MIMES=$VITE_SHOP_LOGO_ALLOWED_MIMES \ VITE_SHOP_LOGO_MAX_FILE_BYTES=$VITE_SHOP_LOGO_MAX_FILE_BYTES \ VITE_SHOP_FAVICON_ALLOWED_MIMES=$VITE_SHOP_FAVICON_ALLOWED_MIMES \ VITE_SHOP_FAVICON_MAX_FILE_BYTES=$VITE_SHOP_FAVICON_MAX_FILE_BYTES \ VITE_DIGITAL_STOCK_ATTACHMENT_ALLOWED_MIMES=$VITE_DIGITAL_STOCK_ATTACHMENT_ALLOWED_MIMES \ VITE_DIGITAL_STOCK_ATTACHMENT_MAX_FILE_BYTES=$VITE_DIGITAL_STOCK_ATTACHMENT_MAX_FILE_BYTES \ VITE_VALIDATION_PRODUCT_TITLE_MAX_LENGTH=$VITE_VALIDATION_PRODUCT_TITLE_MAX_LENGTH \ VITE_VALIDATION_CATEGORY_NAME_MAX_LENGTH=$VITE_VALIDATION_CATEGORY_NAME_MAX_LENGTH \ VITE_VALIDATION_DISCOUNT_CODE_MAX_LENGTH=$VITE_VALIDATION_DISCOUNT_CODE_MAX_LENGTH \ VITE_VALIDATION_VARIANT_IMAGES_MAX=$VITE_VALIDATION_VARIANT_IMAGES_MAX \ VITE_VALIDATION_DIGITAL_STOCK_ATTACHMENTS_MAX=$VITE_VALIDATION_DIGITAL_STOCK_ATTACHMENTS_MAX \ VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH=$VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH \ VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH=$VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH \ VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH=$VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH \ VITE_ORDERS_DETAIL_POLL_INTERVAL_MS=$VITE_ORDERS_DETAIL_POLL_INTERVAL_MS RUN npm run build FROM nginx:alpine RUN apk add --no-cache gettext COPY --from=cms-builder /cms/dist /usr/share/nginx/html/cms COPY nginx/conf.d/ /etc/nginx/templates/conf.d/ COPY nginx/snippets/ /etc/nginx/templates/snippets/ COPY nginx/docker-entrypoint.sh /docker-entrypoint.sh RUN chmod +x /docker-entrypoint.sh ENTRYPOINT ["/docker-entrypoint.sh"]