diff --git a/Dockerfile b/Dockerfile index f4e5126..55a4b79 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$TARGETPLATFORM alpine:latest as rclone +FROM --platform=$TARGETPLATFORM docker.io/alpine:latest as rclone ARG TARGETPLATFORM RUN apk add wget @@ -13,9 +13,9 @@ RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then \ fi -FROM restic/restic:0.16.0 +FROM docker.io/restic/restic:0.18.0 -RUN apk add --update --no-cache curl mailx +RUN apk add --update --no-cache curl mailx shadow COPY --from=rclone /bin/rclone /bin/rclone diff --git a/Dockerfile.arm64 b/Dockerfile.arm64 new file mode 100644 index 0000000..21afc0f --- /dev/null +++ b/Dockerfile.arm64 @@ -0,0 +1,58 @@ +FROM docker.io/alpine:latest as rclone + +# Get rclone executable +ADD https://downloads.rclone.org/rclone-current-linux-arm64.zip / +RUN unzip rclone-current-linux-arm64.zip && mv rclone-*-linux-arm64/rclone /bin/rclone && chmod +x /bin/rclone + +FROM docker.io/restic/restic:0.18.0 + +RUN apk add --update --no-cache curl mailx shadow + +COPY --from=rclone /bin/rclone /bin/rclone + +RUN \ + mkdir -p /mnt/restic /var/spool/cron/crontabs /var/log; \ + touch /var/log/cron.log; + +ENV RESTIC_REPOSITORY=/mnt/restic +ENV RESTIC_PASSWORD="" +ENV RESTIC_TAG="" +ENV NFS_TARGET="" +ENV BACKUP_CRON="0 */6 * * *" +ENV CHECK_CRON="" +ENV RESTIC_INIT_ARGS="" +ENV RESTIC_FORGET_ARGS="" +ENV RESTIC_JOB_ARGS="" +ENV RESTIC_DATA_SUBSET="" +ENV MAILX_ARGS="" +ENV OS_AUTH_URL="" +ENV OS_PROJECT_ID="" +ENV OS_PROJECT_NAME="" +ENV OS_USER_DOMAIN_NAME="Default" +ENV OS_PROJECT_DOMAIN_ID="default" +ENV OS_USERNAME="" +ENV OS_PASSWORD="" +ENV OS_REGION_NAME="" +ENV OS_INTERFACE="" +ENV OS_IDENTITY_API_VERSION=3 + +# openshift fix +RUN mkdir /.cache && \ + chgrp -R 0 /.cache && \ + chmod -R g=u /.cache && \ + chgrp -R 0 /mnt && \ + chmod -R g=u /mnt && \ + chgrp -R 0 /var/spool/cron/crontabs/root && \ + chmod -R g=u /var/spool/cron/crontabs/root && \ + chgrp -R 0 /var/log/cron.log && \ + chmod -R g=u /var/log/cron.log + +# /data is the dir where you have to put the data to be backed up +VOLUME /data + +COPY backup.sh /bin/backup +COPY check.sh /bin/check +COPY entry.sh /entry.sh + +ENTRYPOINT ["/entry.sh"] +CMD ["tail","-fn0","/var/log/cron.log"]