FROM ubuntu:18.10 as builder RUN apt -y update \ && apt -y install gcc COPY ./pause /pause RUN cd /pause && gcc ./main.c -o pauser FROM ubuntu:18.10 RUN groupadd postgres && useradd -d /home/postgres -ms /bin/bash -g postgres -G sudo postgres RUN apt -y update \ && apt -y install \ curl \ rsync \ cron \ postgresql postgresql-contrib \ && curl -L \ https://github.com/miniflux/miniflux/releases/download/2.0.19/miniflux_2.0.19_amd64.deb \ > /miniflux.deb \ && dpkg -i /miniflux.deb \ && mkdir -p /mnt/save USER postgres RUN service postgresql start && sleep 10 \ && psql --command "CREATE USER mini WITH SUPERUSER PASSWORD 'pwd';" \ && createdb -O mini pwd \ && psql --command "CREATE DATABASE miniflux;" \ && psql --command "GRANT ALL PRIVILEGES ON DATABASE miniflux TO mini;" \ && service postgresql stop && sleep 10 ENV DATABASE_URL=postgres://mini:pwd@localhost/miniflux?sslmode=disable ENV LISTEN_ADDR=:8032 ENV RUN_MIGRATIONS=1 ENV CREATE_ADMIN=1 ENV ADMIN_USERNAME=username ENV ADMIN_PASSWORD=password ENV RUN_MIGRATIONS=0 ENV CREATE_ADMIN=0 COPY --from=builder /pause/pauser /pauser USER root ### CRON BACKUPS RUN true \ && echo 'service postgresql stop && sleep 5 && b=$(date +%Y%m%d%H) && mkdir -p /mnt/save/$b && rsync -avzP --delete /var/lib/postgresql/10/main/ /mnt/save/$b/ && service postgresql start' > /backup.sh \ && echo 'service postgresql stop && sleep 5 && b=$(find /mnt/save -mindepth 1 -maxdepth 1 | sort | tail -n 1); if [ -n "$b" ]; then rsync -avzP --delete "${b%/}/" /var/lib/postgresql/10/main/; fi && chown -R postgres /var/lib/postgresql && chmod -R 0700 /var/lib/postgresql && service postgresql start;' > /restore.sh \ && echo '0 4,8,12,16,20 * * * bash /backup.sh >> /var/log/cronj.log 2>&1' > /etc/cron.d/backups \ && echo '' >> /etc/cron.d/backups \ && chmod 0644 /etc/cron.d/backups \ && touch /var/log/cronj.log ENTRYPOINT \ bash /restore.sh \ && service postgresql start \ && sleep 10 \ && miniflux -migrate \ && miniflux -create-admin \ && miniflux \ & exec /pauser