@@ -5,7 +5,6 @@ FROM ${BASE_IMAGE} as build-image
55ARG RCLONE_VERSION="v1.69.2"
66ARG RESTIC_VERSION="0.18.0"
77ARG DOCKER_VERSION="28.1.1"
8- ENV SUPERCRONIC_VERSION="v0.2.33"
98
109RUN apt-get update && apt-get install --no-install-recommends -y \
1110unzip \
@@ -26,14 +25,6 @@ RUN tar --extract --file docker-${DOCKER_VERSION}.tgz --directory /tmp/ --strip-
2625
2726FROM ${BASE_IMAGE} as runtime-image
2827
29- ARG USER_ID=1000
30- ARG GROUP_ID=1000
31-
32- RUN groupadd -g ${GROUP_ID} appuser && \
33- useradd -u ${USER_ID} -g appuser -s /bin/sh -d /home/appuser appuser && \
34- mkdir -p /home/appuser && \
35- chown -R appuser:appuser /home/appuser
36-
3728RUN \
3829 apt-get update \
3930 && apt-get upgrade -y \
@@ -44,40 +35,34 @@ RUN \
4435 msmtp \
4536 tree \
4637 fuse \
38+ cron \
4739 ca-certificates \
4840 gzip \
4941 jq \
5042 openssh-client \
5143 && apt-get clean \
5244 && rm -rf /var/lib/apt/lists/*
5345
54- # Install supercronic (instead of cron)
55- RUN curl -fsSLO "https://github.com/aptible/supercronic/releases/download/${SUPERCRONIC_VERSION}/supercronic-linux-amd64" && \
56- chmod +x supercronic-linux-amd64 && \
57- mv supercronic-linux-amd64 /usr/local/bin/supercronic
58-
46+ # get rclone and restic from build-image
5947COPY --from=build-image /bin/rclone /bin/rclone
6048COPY --from=build-image /bin/restic /bin/restic
6149COPY --from=build-image /tmp/docker /usr/local/bin/docker
6250
63- RUN mkdir -p /local /var/log/restic /var/spool/cron/crontabs && \
64- touch /var/log/cron.log /var/log/restic/backup.log /var/log/restic/lastrun.log && \
65- chown -R appuser:appuser /local /var/log /var/spool/cron/crontabs && \
66- chmod +x /bin/rclone /bin/restic /usr/local/bin/docker
51+ RUN mkdir -p /local /var/log/restic \
52+ && touch /var/log/cron.log \
53+ && touch /var/log/restic/backup.log \
54+ && touch /var/log/restic/lastrun.log \
55+ && chmod +x /bin/rclone /bin/restic /usr/local/bin/docker
56+
57+ # /data is the dir where you have to put the data to be backed up
58+ VOLUME /data
6759
6860COPY backup.sh /bin/backup
6961COPY check.sh /bin/check
7062COPY entry.sh /bin/entry.sh
7163COPY log.sh /bin/log.sh
7264COPY pre-default.sh /bin/pre-default.sh
73- COPY crontab /var/spool/cron/crontabs/appuser
74-
75- RUN chmod +x /bin/backup /bin/check /bin/entry.sh /bin/log.sh /bin/pre-default.sh && \
76- chown appuser:appuser /var/spool/cron/crontabs/appuser && \
77- chmod 600 /var/spool/cron/crontabs/appuser
78-
79- VOLUME /data
65+ RUN chmod +x /bin/backup /bin/check /bin/entry.sh /bin/log.sh /bin/pre-default.sh
8066
81- USER appuser:appuser
8267ENTRYPOINT ["/bin/entry.sh" ]
83- CMD ["supercronic " , "/var/spool/cron/crontabs/appuser " ]
68+ CMD ["cron " , "-f" , "-L" , "2 " ]
0 commit comments