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/ COPY syncer /sync/syncer COPY sync /sync/sync COPY start.sh /sync/start.sh COPY postgres_healthcheck.sh /usr/local/bin/postgres_healthcheck RUN composer install 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"] STOPSIGNAL SIGINT CMD ["/bin/bash", "/sync/start.sh"] HEALTHCHECK --start-period=30s \ CMD /usr/local/bin/postgres_healthcheck FROM postgres AS postgres-traptest COPY traptest.sh /usr/local/bin/traptest RUN chmod +x /usr/local/bin/traptest CMD [] ENTRYPOINT ["/usr/local/bin/traptest"]