le-easy-certs/Dockerfile
2022-03-24 20:37:31 +01:00

36 lines
1.0 KiB
Docker

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" ]