mysql-ha-cloud (sha256:15b1ddd5d5e6680cb645cd921138ccdd7ade68b82d33dbfd7d372f4f6a2d126c)
Installation
docker pull source.selfmanager.net.au/manageitpub/mysql-ha-cloud@sha256:15b1ddd5d5e6680cb645cd921138ccdd7ade68b82d33dbfd7d372f4f6a2d126csha256:15b1ddd5d5e6680cb645cd921138ccdd7ade68b82d33dbfd7d372f4f6a2d126cAbout this package
This container image provides a highly available and replicated MySQL installation in Kubernetes or Docker Swarm. Consul, ProxySQL, and XtraBackup are used for leader election, load distribution, and backups.
Image layers
| ADD oraclelinux-9-slim-amd64-rootfs.tar.xz / # buildkit |
| CMD ["/bin/bash"] |
| RUN /bin/sh -c set -eux; groupadd --system --gid 999 mysql; useradd --system --uid 999 --gid 999 --home-dir /var/lib/mysql --no-create-home mysql # buildkit |
| ENV GOSU_VERSION=1.19 |
| RUN /bin/sh -c set -eux; arch="$(uname -m)"; case "$arch" in aarch64) gosuArch='arm64' ;; x86_64) gosuArch='amd64' ;; *) echo >&2 "error: unsupported architecture: '$arch'"; exit 1 ;; esac; curl -fL -o /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$gosuArch.asc"; curl -fL -o /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$gosuArch"; export GNUPGHOME="$(mktemp -d)"; gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; chmod +x /usr/local/bin/gosu; gosu --version; gosu nobody true # buildkit |
| RUN /bin/sh -c set -eux; microdnf install -y bzip2 gzip openssl xz zstd findutils ; microdnf clean all # buildkit |
| RUN /bin/sh -c set -eux; key='BCA4 3417 C3B4 85DD 128E C6D4 B7B3 B788 A8D3 785C'; export GNUPGHOME="$(mktemp -d)"; gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; gpg --batch --export --armor "$key" > /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql; rm -rf "$GNUPGHOME" # buildkit |
| ENV MYSQL_MAJOR=8.4 |
| ENV MYSQL_VERSION=8.4.13-1.el9 |
| RUN /bin/sh -c set -eu; { echo '[mysql8.4-server-minimal]'; echo 'name=MySQL 8.4 Server Minimal'; echo 'enabled=1'; echo 'baseurl=https://repo.mysql.com/yum/mysql-8.4-community/docker/el/9/$basearch/'; echo 'gpgcheck=1'; echo 'gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql'; echo 'module_hotfixes=true'; } | tee /etc/yum.repos.d/mysql-community-minimal.repo # buildkit |
| RUN /bin/sh -c set -eux; microdnf install -y "mysql-community-server-minimal-$MYSQL_VERSION"; microdnf clean all; grep -F 'socket=/var/lib/mysql/mysql.sock' /etc/my.cnf; sed -i 's!^socket=.*!socket=/var/run/mysqld/mysqld.sock!' /etc/my.cnf; grep -F 'socket=/var/run/mysqld/mysqld.sock' /etc/my.cnf; { echo '[client]'; echo 'socket=/var/run/mysqld/mysqld.sock'; } >> /etc/my.cnf; ! grep -F '!includedir' /etc/my.cnf; { echo; echo '!includedir /etc/mysql/conf.d/'; } >> /etc/my.cnf; mkdir -p /etc/mysql/conf.d; mkdir -p /var/lib/mysql /var/run/mysqld; chown mysql:mysql /var/lib/mysql /var/run/mysqld; chmod 1777 /var/lib/mysql /var/run/mysqld; mkdir /docker-entrypoint-initdb.d; mysqld --version; mysql --version # buildkit |
| RUN /bin/sh -c set -eu; { echo '[mysql-tools-community]'; echo 'name=MySQL Tools Community'; echo 'baseurl=https://repo.mysql.com/yum/mysql-tools-8.4-community/el/9/$basearch/'; echo 'enabled=1'; echo 'gpgcheck=1'; echo 'gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql'; echo 'module_hotfixes=true'; } | tee /etc/yum.repos.d/mysql-community-tools.repo # buildkit |
| ENV MYSQL_SHELL_VERSION=8.4.10-1.el9 |
| RUN /bin/sh -c set -eux; microdnf install -y "mysql-shell-$MYSQL_SHELL_VERSION"; microdnf clean all; mysqlsh --version # buildkit |
| VOLUME [/var/lib/mysql] |
| COPY docker-entrypoint.sh /usr/local/bin/ # buildkit |
| ENTRYPOINT ["docker-entrypoint.sh"] |
| EXPOSE map[3306/tcp:{} 33060/tcp:{}] |
| CMD ["mysqld"] |
| ENV MYSQL_VERSION=8.4.13-1.el9 |
| SHELL [/bin/bash -c] |
| RUN /bin/bash -c microdnf install -y --nodocs --setopt=install_weak_deps=0 libev lz4 perl-interpreter perl-DBI perl-DBD-MySQL procps python3.14 rsync unzip wget && wget https://repo.percona.com/yum/PERCONA-PACKAGING-KEY -O /tmp/percona.asc && gpg --show-keys --with-colons /tmp/percona.asc | grep -q "^fpr:::::::::4D1BB29D63D98E422B2113B19334A25F8507EFA5:$" && rpm --import /tmp/percona.asc && wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.4/Percona-XtraBackup-8.4.0-7/binary/redhat/9/x86_64/percona-xtrabackup-84-8.4.0-7.1.el9.x86_64.rpm -O /tmp/xtrabackup.rpm && rpm -i --define "_pkgverify_level all" /tmp/xtrabackup.rpm && rm /tmp/xtrabackup.rpm /tmp/percona.asc && wget https://releases.hashicorp.com/consul/1.22.7/consul_1.22.7_linux_amd64.zip -O /tmp/consul.zip && echo "fe25cecd8dd3552a8e5b0941cde1d79bb6004eac384aa45679dd1398f947201d /tmp/consul.zip" | sha256sum -c && unzip /tmp/consul.zip -d /usr/local/bin && rm /usr/local/bin/LICENSE.txt && rm /tmp/consul.zip && wget https://github.com/sysown/proxysql/releases/download/v3.1.11/proxysql-3.1.11-1-centos9.x86_64.rpm -O /tmp/proxysql.rpm && echo "c996543ea074a1fa6824e0c68a37bb4a878abb6e11979daeb3dea8962962fccb /tmp/proxysql.rpm" | sha256sum -c && rpm -i /tmp/proxysql.rpm && rm /tmp/proxysql.rpm && mkdir /snapshots && mkdir /cluster && microdnf remove -y wget && microdnf clean all && rm -rf /var/cache/yum/* && rm -rf /var/lib/rpm/__db* && rm -rf /tmp/* # buildkit |
| WORKDIR /cluster |
| ENV PYTHONUSERBASE=/cluster/.prefix |
| COPY /cluster/.prefix /cluster/.prefix # buildkit |
| COPY src/mcm ./mcm # buildkit |
| COPY src/main.py . # buildkit |
| COPY entrypoint.sh . # buildkit |
| VOLUME [/snapshots] |
| EXPOSE [6033/tcp] |
| STOPSIGNAL SIGTERM |
| HEALTHCHECK {Test:[CMD /cluster/main.py --log-level WARNING healthcheck] Interval:10s Timeout:5s StartPeriod:1m0s StartInterval:1s Retries:3} |
| ENTRYPOINT ["/cluster/entrypoint.sh"] |
| CMD ["join_or_bootstrap"] |
Labels
| Key | Value |
|---|---|
| org.opencontainers.image.created | 2026-10-30T15:06:02.158Z |
| org.opencontainers.image.description | This container image provides a highly available and replicated MySQL installation in Kubernetes or Docker Swarm. Consul, ProxySQL, and XtraBackup are used for leader election, load distribution, and backups. |
| org.opencontainers.image.licenses | |
| org.opencontainers.image.revision | abce65e5abd869b76e40682d6317cf6d05297c7f |
| org.opencontainers.image.source | https://source.selfmanager.net.au/manageitpub/mysql-ha-cloud |
| org.opencontainers.image.title | mysql-ha-cloud |
| org.opencontainers.image.url | https://source.selfmanager.net.au/manageitpub/mysql-ha-cloud |
| org.opencontainers.image.version | 1.0.0 |
Details
2026-10-30 15:07:24 +00:00
Versions (7)
View all
Container
1
OCI / Docker
linux/amd64
465 MiB