diff --git a/Dockerfile b/Dockerfile index 707ceda..5d81220 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,9 +6,13 @@ WORKDIR /usr/src/pop_imap_importer # Copy manifests first to leverage Docker layer caching COPY Cargo.* ./ -# Create a dummy src/main.rs file to build dependencies -RUN mkdir -p src && \ - echo "fn main() {}" > src/main.rs +# Create dummy source files to build dependencies +RUN mkdir -p src/bin && \ + echo "fn main() {}" > src/main.rs && \ + echo "" > src/lib.rs && \ + echo "fn main() {}" > src/bin/normalize_imap.rs && \ + echo "fn main() {}" > src/bin/fetch_email.rs && \ + echo "fn main() {}" > src/bin/list_uids.rs # Build dependencies only - this will be cached as long as Cargo.toml/Cargo.lock don't change RUN --mount=type=cache,target=/usr/local/cargo/registry \ @@ -16,7 +20,8 @@ RUN --mount=type=cache,target=/usr/local/cargo/registry \ # Copy the actual source code COPY src src -RUN touch src/main.rs +# Touch source files to force rebuild +RUN touch src/main.rs src/lib.rs # Build the actual application RUN --mount=type=cache,target=/usr/local/cargo/registry \ @@ -32,7 +37,7 @@ RUN apt-get update && \ rm -rf /var/lib/apt/lists/* # RUN apt-get update && apt-get install -y extra-runtime-dependencies && rm -rf /var/lib/apt/lists/* -COPY --from=builder /usr/src/pop_imap_importer/target/release/rs_pop_imap_importer /usr/local/bin/pop_imap_importer +COPY --from=builder /usr/src/pop_imap_importer/target/release/pop-to-imap /usr/local/bin/pop_imap_importer CMD ["pop_imap_importer"]