FROM rust:1.59.0-slim-bullseye as build WORKDIR /app RUN apt-get update && apt-get install -y libssl-dev pkg-config COPY ./src ./src COPY ./Cargo.toml ./ COPY ./Cargo.lock ./ RUN cargo build --release ################# # RELEASE IMAGE # ################# FROM debian:bullseye-slim # Install cron and clean default cron jobs RUN apt-get update && apt-get install -y --no-install-recommends cron && rm -rf /etc/cron.*/* # Creating the file like this is very suboptimal to say the least RUN echo "0 0,12 * * * root cd /app && ./le-easy-certs >/proc/1/fd/1 2>/proc/1/fd/2\n" > /etc/crontab RUN echo "@reboot root cd /app && ./le-easy-certs >/proc/1/fd/1 2>/proc/1/fd/2\n\n" >> /etc/crontab WORKDIR /app COPY --from=build /app/target/release/le-easy-certs /app/ ENV LE_CONF=/le-conf/le-conf.toml # Creating the file like this is very suboptimal to say the least RUN echo "#!/bin/sh" > /app/run.sh RUN echo "env >> /etc/environment" >> /app/run.sh RUN echo "cron -f" >> /app/run.sh RUN chmod +x /app/run.sh CMD [ "/app/run.sh" ]