auction/staging-db (20250603130501)
Published 2025-06-03 15:53:08 +00:00 by joshuacoles
Installation
docker pull git.joshuacoles.me/market-dojo/auction/staging-db:20250603130501sha256:30bd2c504c6c661c468d0ba4953b12d2269b2824f49deb084f3d9ed00db43101Image Layers
| ADD oraclelinux-9-slim-arm64v8-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.17 |
| 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.5-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.5-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_ROOT_PASSWORD=marketdojo |
| ENV MYSQL_USER=marketdojo |
| ENV MYSQL_PASSWORD=marketdojo |
| ENV MYSQL_DATABASE=auction_development |
| RUN /bin/sh -c cat > /etc/mysql/conf.d/custom.cnf << 'EOF' [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci max_allowed_packet=268M innodb_buffer_pool_size=256M innodb_log_file_size=64M innodb_flush_log_at_trx_commit=1 # Optimize for build-time import innodb_doublewrite=0 sync_binlog=0 EOF # buildkit |
| COPY database-backup.sql /tmp/database-backup.sql # buildkit |
| COPY docker/db/init/init.sh /tmp/init-users.sh # buildkit |
| RUN /bin/sh -c chmod 644 /tmp/database-backup.sql && chmod +x /tmp/init-users.sh # buildkit |
| RUN /bin/sh -c mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql # buildkit |
| RUN /bin/sh -c set -eux; mysqld --user=mysql --datadir=/var/lib/mysql --skip-networking --socket=/tmp/mysql.sock & mysql_pid=$!; for i in {1..30}; do if mysql --socket=/tmp/mysql.sock -e 'SELECT 1' >/dev/null 2>&1; then break; fi; echo "Waiting for MySQL to start... ($i/30)"; sleep 2; done; mysql --socket=/tmp/mysql.sock -e " SET GLOBAL innodb_flush_log_at_trx_commit = 0; SET GLOBAL innodb_buffer_pool_size = 268435456; SET GLOBAL max_allowed_packet = 268435456; SET GLOBAL net_buffer_length = 1048576; SET GLOBAL connect_timeout = 60; SET FOREIGN_KEY_CHECKS = 0; SET UNIQUE_CHECKS = 0; SET AUTOCOMMIT = 0; "; mysql --socket=/tmp/mysql.sock -e " ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}'; FLUSH PRIVILEGES; "; mysql --socket=/tmp/mysql.sock -u root -p${MYSQL_ROOT_PASSWORD} -e " CREATE DATABASE IF NOT EXISTS ${MYSQL_DATABASE}; "; mysql --socket=/tmp/mysql.sock -u root -p${MYSQL_ROOT_PASSWORD} -e " CREATE USER IF NOT EXISTS '${MYSQL_USER}'@'%' IDENTIFIED BY '${MYSQL_PASSWORD}'; GRANT ALL PRIVILEGES ON *.* TO '${MYSQL_USER}'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; "; echo "Importing database backup..."; mysql --socket=/tmp/mysql.sock -u root -p${MYSQL_ROOT_PASSWORD} ${MYSQL_DATABASE} < /tmp/database-backup.sql; mysql --socket=/tmp/mysql.sock -u root -p${MYSQL_ROOT_PASSWORD} -e " SET GLOBAL innodb_flush_log_at_trx_commit = 1; SET FOREIGN_KEY_CHECKS = 1; SET UNIQUE_CHECKS = 1; SET AUTOCOMMIT = 1; COMMIT; "; mysqladmin --socket=/tmp/mysql.sock -u root -p${MYSQL_ROOT_PASSWORD} shutdown; wait $mysql_pid; rm -f /tmp/database-backup.sql /tmp/init-users.sh # buildkit |
| RUN /bin/sh -c cat > /etc/mysql/conf.d/custom.cnf << 'EOF' [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci max_allowed_packet=268M innodb_buffer_pool_size=256M innodb_log_file_size=64M innodb_flush_log_at_trx_commit=1 EOF # buildkit |
| EXPOSE map[3306/tcp:{}] |
| HEALTHCHECK &{["CMD-SHELL" "mysqladmin ping --host=localhost --user=root --password=$MYSQL_ROOT_PASSWORD || exit 1"] "30s" "5s" "10s" "0s" '\x03'} |
Details
2025-06-03 15:53:08 +00:00
Versions (2)
View all
Container
0
OCI / Docker
linux/arm64
4.4 GiB
20250603130501
2025-06-03
latest
2025-05-28