36 lines
1.0 KiB
Docker
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" ] |