ARG PGSQL_VERSION
FROM postgres:$PGSQL_VERSION-alpine AS postgres
RUN apk add --no-cache runit && \
    apk --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/edge/main add \
      icu-libs \
      &&\
    apk --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/edge/community add \
    # Current packages don't exist in other repositories
    libavif \
    && \
    apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/ --allow-untrusted gnu-libiconv \
        # Packages \
        nano \
        curl \
        tini \
        php81 \
        php81-dev \
        php81-common \
        php81-gd \
        php81-xmlreader \
        php81-bcmath \
        php81-ctype \
        php81-curl \
        php81-exif \
        php81-iconv \
        php81-intl \
        php81-mbstring \
        php81-opcache \
        php81-openssl \
        php81-pcntl \
        php81-phar \
        php81-session \
        php81-xml \
        php81-xsl \
        php81-zip \
        php81-zlib \
        php81-dom \
        php81-fpm \
        php81-sodium \
        php81-tokenizer \
        php81-fileinfo \
        php81-simplexml \
        # Iconv Fix
        php81-pecl-apcu \
        ncurses \
        xz \
    && ln -s /usr/bin/php81 /usr/bin/php
RUN curl https://getcomposer.org/composer-stable.phar --output /usr/local/bin/composer && \
    chmod +x /usr/local/bin/composer
COPY start.sh /usr/local/bin/start.sh
COPY postgres.runit /etc/service/postgres/run
COPY sync-pull.runit /etc/service/sync-pull/run
COPY sync-push.runit /etc/service/sync-push/run
VOLUME /dumps
WORKDIR /sync
COPY composer.* /sync/
RUN composer install
COPY syncer /sync/syncer
COPY sync /sync/sync
COPY start.sh /sync/start.sh
COPY postgres_healthcheck.sh /usr/local/bin/postgres_healthcheck
ENV PATH="/sync:${PATH}"
RUN ln -s /sync/vendor/bin/wait-for-postgresql /usr/local/bin/wait-for-database && \
    chmod +x /sync/sync /etc/service/*/run /usr/local/bin/postgres_healthcheck
ENTRYPOINT ["/bin/bash", "/sync/start.sh"]
CMD []
HEALTHCHECK --start-period=30s \
    CMD /usr/local/bin/postgres_healthcheck
STOPSIGNAL SIGTERM