Docker-S3DB/Dockerfile.mariadb
2024-08-07 13:30:30 +02:00

74 lines
2.6 KiB
Text

# checkov:skip=CKV_DOCKER_3 If its good enough for upstream mariadb, its good enough for me.
ARG MARIADB_VERSION
FROM mariadb:$MARIADB_VERSION AS mariadb
LABEL maintainer="Matthew Baggett <matthew@baggett.me>" \
org.label-schema.vcs-url="https://github.com/benzine-framework/docker-s3db" \
org.opencontainers.image.source="https://github.com/benzine-framework/docker-s3db"
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
ENV DEBIAN_FRONTEND="teletype" \
TERM=xterm-256color \
COMPOSER_ALLOW_SUPERUSER=1
RUN echo "APT::Acquire::Retries \"5\";" > /etc/apt/apt.conf.d/80-retries && \
echo "Acquire::http::No-Cache=true;" > /etc/apt/apt.conf.d/80-no-cache && \
echo "Acquire::http::Pipeline-Depth=0;" > /etc/apt/apt.conf.d/80-no-pipeline && \
apt-get -qq update && \
apt-get -yqq upgrade && \
apt-get -yqq install --no-install-recommends \
nano \
curl \
xz-utils \
dos2unix \
runit \
python3-software-properties \
software-properties-common \
add-apt-key \
&& \
add-apt-repository ppa:ondrej/php && \
apt-get -qq update && \
apt-get -yqq install --no-install-recommends \
#php8.3-apcu \
php8.3-bcmath \
#php8.3-bz2 \
php8.3-cli \
php8.3-curl \
php8.3-mysql \
#php8.3-opcache \
#php8.3-phpdbg \
php8.3-xml \
php8.3-zip \
&& \
apt-get remove -yqq \
software-properties-common \
python-apt-common \
python3-software-properties \
python3.5 python3.5-minimal libpython3.5-minimal \
&& \
apt-get autoremove -yqq && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/lib/dpkg/status.old /var/cache/debconf/templates.dat /var/log/dpkg.log /var/log/lastlog /var/log/apt/*.log && \
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 mysql.runit /etc/service/mysql/run
COPY sync-pull.runit /etc/service/sync-pull/run
COPY sync-push.runit /etc/service/sync-push/run
COPY sync-prune.runit /etc/service/sync-prune/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
ENV PATH="/sync:${PATH}"
RUN ln -s /sync/vendor/bin/wait-for-mariadb /usr/local/bin/wait-for-database && \
chmod +x /sync/sync /etc/service/*/run
ENTRYPOINT ["/sync/start.sh"]
CMD []
HEALTHCHECK --start-period=30s \
CMD /usr/local/bin/healthcheck.sh \
--defaults-extra-file=/etc/healthcheck.cnf \
--connect
STOPSIGNAL SIGTERM