1f6d3fd1cb
- Added an entrypoint script to the scraper Dockerfile to handle one-time scraping with date range support. - Introduced a new ContentXML field in the Notice entity to store XML content, improving data structure for notices. - Updated the scraper logic to map XML content to the tender entity, enhancing data processing capabilities.
33 lines
999 B
Docker
33 lines
999 B
Docker
ARG GO_VERSION=1.23
|
|
ARG BASH_VERSION=5.0
|
|
|
|
FROM golang:${GO_VERSION} AS go-builder
|
|
|
|
WORKDIR /app
|
|
|
|
COPY . .
|
|
|
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o scraper-build ./cmd/scraper/main.go
|
|
|
|
FROM bash:${BASH_VERSION}
|
|
RUN apk --no-cache add busybox-suid curl rsync tzdata tcpdump tree ca-certificates s-nail \
|
|
&& ln -s /usr/bin/mail /usr/bin/s-nail
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=go-builder /app/scraper-build .
|
|
|
|
# Create entrypoint script
|
|
RUN echo '#!/bin/bash' > /app/entrypoint.sh && \
|
|
echo 'set -e' >> /app/entrypoint.sh && \
|
|
echo 'if [ "$SCRAPER_ONETIME" = "true" ] && [ -n "$FROM_DATE" ] && [ -n "$TO_DATE" ]; then' >> /app/entrypoint.sh && \
|
|
echo ' exec /app/scraper-build -onetime -from "$FROM_DATE" -to "$TO_DATE"' >> /app/entrypoint.sh && \
|
|
echo 'else' >> /app/entrypoint.sh && \
|
|
echo ' exec /app/scraper-build' >> /app/entrypoint.sh && \
|
|
echo 'fi' >> /app/entrypoint.sh && \
|
|
chmod +x /app/entrypoint.sh
|
|
|
|
EXPOSE 80
|
|
|
|
ENTRYPOINT ["/app/entrypoint.sh"]
|