FROM rust:alpine AS builder

RUN apk update \
    && apk upgrade --no-cache \
    && apk add --no-cache musl-dev proj-dev pkgconfig clang-dev llvm-dev libc6-compat   \
    && rm -rf /var/cache/apk/*

WORKDIR /usr/src/app
RUN cargo new --bin parse-czech-republic-cuzk-addresses
RUN cargo new --bin meilisearch

COPY parse-czech-republic-cuzk-addresses/Cargo.toml parse-czech-republic-cuzk-addresses/Cargo.toml
COPY meilisearch/Cargo.toml meilisearch/Cargo.toml

WORKDIR /usr/src/app/parse-czech-republic-cuzk-addresses
RUN RUSTFLAGS="-C target-feature=-crt-static" cargo build --release
WORKDIR /usr/src/app/meilisearch
RUN cargo build --release

WORKDIR /usr/src/app/parse-czech-republic-cuzk-addresses
COPY parse-czech-republic-cuzk-addresses/src ./src
# RUN cat src/main.rs && sleep 19999999
RUN RUSTFLAGS="-C target-feature=-crt-static" cargo install --path .
RUN /usr/local/cargo/bin/parse-czech-republic-cuzk-addresses; sleep 5

WORKDIR /usr/src/app/meilisearch
COPY meilisearch/src ./src
# RUN cargo install --path .
RUN cargo build --release

FROM alpine:latest

RUN apk update \
    && apk upgrade --no-cache \
    && apk add --no-cache libgcc proj-dev \
    && rm -rf /var/cache/apk/*

COPY --from=builder /usr/local/cargo/bin/parse-czech-republic-cuzk-addresses /usr/local/bin/parse-czech-republic-cuzk-addresses
# COPY --from=builder /usr/local/cargo/bin/meilisearch /usr/local/bin/meilisearch
COPY --from=builder /usr/src/app/meilisearch/target/release/meilisearch /usr/local/bin/meilisearch
