clickup-ical-sync 1.6.0

Sync iCal calendar to ClickUp tasks. One-way sync from iCal to ClickUp.
Documentation
# From https://www.reddit.com/r/rust/comments/16bswvl/looking_for_the_perfect_dockerfile_for_rust/
# uses cargo chef to cache dependencies

# ===============
# NOTE: Because this is a monorepo, Cargo.lock is in the root of the repo & so we need the build context to start there
# Hence build from the root of the monorepo like so:
# ``docker build -f ./clickup/calendar-sync/Dockerfile -t docsoc/docsoc_clickup_calendar_sync .`
# ===============

FROM lukemathwalker/cargo-chef:latest as chef
WORKDIR /app

FROM chef AS planner
COPY ./Cargo.toml ./Cargo.lock ./
COPY ./clickup/calendar-sync/*.toml ./clickup/calendar-sync/
COPY ./clickup/calendar-sync/src ./clickup/calendar-sync/src
RUN cargo chef prepare

FROM chef AS builder
COPY --from=planner /app/recipe.json .
RUN cargo chef cook --release
COPY . .
RUN cargo build --release
RUN mv ./dist/target/release/clickup-ical-sync ./clickup-ical-sync

FROM debian:stable-slim AS runtime
WORKDIR /app
RUN apt-get update -y && apt-get upgrade -y
# libpq5 required for postgresql interation
# ca-certificates required for https
RUN apt-get update -y && apt-get install -y libpq5 ca-certificates
# Install disel CLI
RUN curl --proto '=https' --tlsv1.2 -LsSf https://github.com/diesel-rs/diesel/releases/download/v2.2.1/diesel_cli-installer.sh | sh
# # Install pm2
# RUN npm install pm2 -g

COPY --from=builder /app/clickup-ical-sync /usr/local/bin/
COPY ./clickup/calendar-sync/scripts /app/scripts
RUN chmod +x /app/scripts/*.sh
# Run it every 10 secs
CMD ["/usr/local/bin/clickup-ical-sync"]