Skip to content

Commit

Permalink
add support to mysql 8.4 lts and 9.0
Browse files Browse the repository at this point in the history
  • Loading branch information
joubertredrat committed Sep 13, 2024
1 parent f8a0d3c commit 2dc4f18
Show file tree
Hide file tree
Showing 6 changed files with 320 additions and 12 deletions.
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ help:
@echo " make mongo7.0-help Help about Mongo 7.0 services"
@echo " make mysql5.7-help Help about MySQL 5.7 services"
@echo " make mysql8.0-help Help about MySQL 8.0 services"
@echo " make mysql8.4-help Help about MySQL 8.4 services"
@echo " make mysql9.0-help Help about MySQL 9.0 services"
@echo " make postgres13.2-help Help about Postgres 13.2 services"
@echo " make postgres14.2-help Help about Postgres 14.2 services"
@echo " make postgres15.3-help Help about Postgres 15.3 services"
Expand All @@ -60,6 +62,8 @@ include mongo/6.0/Makefile
include mongo/7.0/Makefile
include mysql/5.7/Makefile
include mysql/8.0/Makefile
include mysql/8.4/Makefile
include mysql/9.0/Makefile
include postgres/13.2/Makefile
include postgres/14.2/Makefile
include postgres/15.3/Makefile
Expand Down
60 changes: 60 additions & 0 deletions mysql/8.4/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
DEVBOX_MYSQL84_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}dr7

DEVBOX_MYSQL84_ROOT_PASSWORD ?= password
DEVBOX_MYSQL84_DB_EXPORT_PORT ?= 15406
DEVBOX_MYSQL84_PMA_EXPORT_PORT ?= 15407
DEVBOX_MYSQL84_ADMINER_EXPORT_PORT ?= 15408
DEVBOX_MYSQL84_DBGATE_EXPORT_PORT ?= 15409

mysql8.4-up: compose-cmd ;
${DEVBOX_COMPOSE_CMD} -f mysql/8.4/compose.yml -p ${DEVBOX_MYSQL84_PROJECT_NAME} up -d

mysql8.4-down: compose-cmd ;
${DEVBOX_COMPOSE_CMD} -f mysql/8.4/compose.yml -p ${DEVBOX_MYSQL84_PROJECT_NAME} down

mysql8.4-status: compose-cmd ;
${DEVBOX_COMPOSE_CMD} -f mysql/8.4/compose.yml -p ${DEVBOX_MYSQL84_PROJECT_NAME} ps

mysql8.4-logs: compose-cmd ;
${DEVBOX_COMPOSE_CMD} -f mysql/8.4/compose.yml -p ${DEVBOX_MYSQL84_PROJECT_NAME} logs -f

mysql8.4-purge: compose-cmd ;
${DEVBOX_COMPOSE_CMD} -f mysql/8.4/compose.yml -p ${DEVBOX_MYSQL84_PROJECT_NAME} down --volumes

mysql8.4-command: compose-cmd ;
@echo "${DEVBOX_COMPOSE_CMD} -f mysql/8.4/compose.yml -p ${DEVBOX_MYSQL84_PROJECT_NAME}"

mysql8.4-help:
@echo
@echo "Commands:"
@echo
@echo " make mysql8.4-up Start MySQL 8.4 service and management tools"
@echo " make mysql8.4-down Stop MySQL 8.4 service and management tools"
@echo " make mysql8.4-status Status from running services"
@echo " make mysql8.4-logs Logs from running services"
@echo " make mysql8.4-purge Delete all MySQL 8.4 data"
@echo " make mysql8.4-info Information about the services for use"
@echo " make mysql8.4-command Print docker compose command"
@echo " make mysql8.4-help This help :)"
@echo
@echo "Available configurable environment variables:"
@echo
@echo " DEVBOX_MYSQL84_ROOT_PASSWORD Default root password"
@echo " DEVBOX_MYSQL84_DB_EXPORT_PORT Port to expose MySQL 8.4 in docker for your environment"
@echo " DEVBOX_MYSQL84_PMA_EXPORT_PORT Port to expose PhpMyAdmin in docker for access in your browser"
@echo " DEVBOX_MYSQL84_ADMINER_EXPORT_PORT Port to expose Adminer in docker for access in your browser"
@echo " DEVBOX_MYSQL84_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser"
@echo

mysql8.4-info:
@echo
@echo "MySQL 8.4 information"
@echo
@echo " Host: 127.0.0.1"
@echo " Port: ${DEVBOX_MYSQL84_DB_EXPORT_PORT}"
@echo " User: root"
@echo " Password: ${DEVBOX_MYSQL84_ROOT_PASSWORD}"
@echo " PhpMyAdmin: http://127.0.0.1:${DEVBOX_MYSQL84_PMA_EXPORT_PORT}"
@echo " Adminer: http://127.0.0.1:${DEVBOX_MYSQL84_ADMINER_EXPORT_PORT}"
@echo " DbGate: http://127.0.0.1:${DEVBOX_MYSQL84_DBGATE_EXPORT_PORT}"
@echo
92 changes: 92 additions & 0 deletions mysql/8.4/compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
services:
db:
image: mysql:8.4
environment:
MYSQL_ROOT_PASSWORD: ${DEVBOX_MYSQL84_ROOT_PASSWORD:-password}
volumes:
- mysql84_data:/var/lib/mysql
networks:
mysql84_network_local:
aliases:
- db.mysql84.devbox.local
hostname: db.mysql84.devbox.local
ports:
- ${DEVBOX_MYSQL84_DB_EXPORT_PORT:-15406}:3306
healthcheck:
test: mysqladmin -p${DEVBOX_MYSQL84_ROOT_PASSWORD:-password} ping -h localhost
start_period: 5s
interval: 3s
timeout: 1s
retries: 20
phpmyadmin:
image: phpmyadmin/phpmyadmin:5
depends_on:
db:
condition: service_healthy
environment:
PMA_HOST: db.mysql84.devbox.local
PMA_USER: root
PMA_PASSWORD: ${DEVBOX_MYSQL84_ROOT_PASSWORD:-password}
networks:
mysql84_network_local:
aliases:
- phpmyadmin.mysql84.devbox.local
hostname: phpmyadmin.mysql84.devbox.local
ports:
- ${DEVBOX_MYSQL84_PMA_EXPORT_PORT:-15407}:80
healthcheck:
test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1"]
interval: 3s
timeout: 1s
retries: 20
adminer:
image: adminer:4
depends_on:
db:
condition: service_healthy
environment:
ADMINER_DEFAULT_SERVER: db.mysql84.devbox.local
networks:
mysql84_network_local:
aliases:
- adminer.mysql84.devbox.local
hostname: adminer.mysql84.devbox.local
ports:
- ${DEVBOX_MYSQL84_ADMINER_EXPORT_PORT:-15408}:8080
healthcheck:
test: ["CMD", "php", "-r", "if (@file_get_contents('http://localhost:8080') === false) { exit(1); }"]
interval: 3s
timeout: 1s
retries: 20
dbgate:
image: dbgate/dbgate:alpine
depends_on:
db:
condition: service_healthy
environment:
CONNECTIONS: mysql1
LABEL_mysql1: db.mysql84.devbox.local
SERVER_mysql1: db.mysql84.devbox.local
USER_mysql1: root
PASSWORD_mysql1: ${DEVBOX_MYSQL84_ROOT_PASSWORD:-password}
PORT_mysql1: 3306
ENGINE_mysql1: mysql@dbgate-plugin-mysql
networks:
mysql84_network_local:
aliases:
- dbgate.mysql84.devbox.local
hostname: dbgate.mysql84.devbox.local
ports:
- ${DEVBOX_MYSQL84_DBGATE_EXPORT_PORT:-15409}:3000
healthcheck:
test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"]
interval: 3s
timeout: 1s
retries: 20

volumes:
mysql84_data:

networks:
mysql84_network_local:
driver: bridge
60 changes: 60 additions & 0 deletions mysql/9.0/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
DEVBOX_MYSQL90_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}9a5

DEVBOX_MYSQL90_ROOT_PASSWORD ?= password
DEVBOX_MYSQL90_DB_EXPORT_PORT ?= 16406
DEVBOX_MYSQL90_PMA_EXPORT_PORT ?= 16407
DEVBOX_MYSQL90_ADMINER_EXPORT_PORT ?= 16408
DEVBOX_MYSQL90_DBGATE_EXPORT_PORT ?= 16409

mysql9.0-up: compose-cmd ;
${DEVBOX_COMPOSE_CMD} -f mysql/9.0/compose.yml -p ${DEVBOX_MYSQL90_PROJECT_NAME} up -d

mysql9.0-down: compose-cmd ;
${DEVBOX_COMPOSE_CMD} -f mysql/9.0/compose.yml -p ${DEVBOX_MYSQL90_PROJECT_NAME} down

mysql9.0-status: compose-cmd ;
${DEVBOX_COMPOSE_CMD} -f mysql/9.0/compose.yml -p ${DEVBOX_MYSQL90_PROJECT_NAME} ps

mysql9.0-logs: compose-cmd ;
${DEVBOX_COMPOSE_CMD} -f mysql/9.0/compose.yml -p ${DEVBOX_MYSQL90_PROJECT_NAME} logs -f

mysql9.0-purge: compose-cmd ;
${DEVBOX_COMPOSE_CMD} -f mysql/9.0/compose.yml -p ${DEVBOX_MYSQL90_PROJECT_NAME} down --volumes

mysql9.0-command: compose-cmd ;
@echo "${DEVBOX_COMPOSE_CMD} -f mysql/9.0/compose.yml -p ${DEVBOX_MYSQL90_PROJECT_NAME}"

mysql9.0-help:
@echo
@echo "Commands:"
@echo
@echo " make mysql9.0-up Start MySQL 9.0 service and management tools"
@echo " make mysql9.0-down Stop MySQL 9.0 service and management tools"
@echo " make mysql9.0-status Status from running services"
@echo " make mysql9.0-logs Logs from running services"
@echo " make mysql9.0-purge Delete all MySQL 9.0 data"
@echo " make mysql9.0-info Information about the services for use"
@echo " make mysql9.0-command Print docker compose command"
@echo " make mysql9.0-help This help :)"
@echo
@echo "Available configurable environment variables:"
@echo
@echo " DEVBOX_MYSQL90_ROOT_PASSWORD Default root password"
@echo " DEVBOX_MYSQL90_DB_EXPORT_PORT Port to expose MySQL 9.0 in docker for your environment"
@echo " DEVBOX_MYSQL90_PMA_EXPORT_PORT Port to expose PhpMyAdmin in docker for access in your browser"
@echo " DEVBOX_MYSQL90_ADMINER_EXPORT_PORT Port to expose Adminer in docker for access in your browser"
@echo " DEVBOX_MYSQL90_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser"
@echo

mysql9.0-info:
@echo
@echo "MySQL 9.0 information"
@echo
@echo " Host: 127.0.0.1"
@echo " Port: ${DEVBOX_MYSQL90_DB_EXPORT_PORT}"
@echo " User: root"
@echo " Password: ${DEVBOX_MYSQL90_ROOT_PASSWORD}"
@echo " PhpMyAdmin: http://127.0.0.1:${DEVBOX_MYSQL90_PMA_EXPORT_PORT}"
@echo " Adminer: http://127.0.0.1:${DEVBOX_MYSQL90_ADMINER_EXPORT_PORT}"
@echo " DbGate: http://127.0.0.1:${DEVBOX_MYSQL90_DBGATE_EXPORT_PORT}"
@echo
92 changes: 92 additions & 0 deletions mysql/9.0/compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
services:
db:
image: mysql:9.0
environment:
MYSQL_ROOT_PASSWORD: ${DEVBOX_MYSQL90_ROOT_PASSWORD:-password}
volumes:
- mysql90_data:/var/lib/mysql
networks:
mysql90_network_local:
aliases:
- db.mysql90.devbox.local
hostname: db.mysql90.devbox.local
ports:
- ${DEVBOX_MYSQL90_DB_EXPORT_PORT:-16406}:3306
healthcheck:
test: mysqladmin -p${DEVBOX_MYSQL90_ROOT_PASSWORD:-password} ping -h localhost
start_period: 5s
interval: 3s
timeout: 1s
retries: 20
phpmyadmin:
image: phpmyadmin/phpmyadmin:5
depends_on:
db:
condition: service_healthy
environment:
PMA_HOST: db.mysql90.devbox.local
PMA_USER: root
PMA_PASSWORD: ${DEVBOX_MYSQL90_ROOT_PASSWORD:-password}
networks:
mysql90_network_local:
aliases:
- phpmyadmin.mysql90.devbox.local
hostname: phpmyadmin.mysql90.devbox.local
ports:
- ${DEVBOX_MYSQL90_PMA_EXPORT_PORT:-16407}:80
healthcheck:
test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1"]
interval: 3s
timeout: 1s
retries: 20
adminer:
image: adminer:4
depends_on:
db:
condition: service_healthy
environment:
ADMINER_DEFAULT_SERVER: db.mysql90.devbox.local
networks:
mysql90_network_local:
aliases:
- adminer.mysql90.devbox.local
hostname: adminer.mysql90.devbox.local
ports:
- ${DEVBOX_MYSQL90_ADMINER_EXPORT_PORT:-16408}:8080
healthcheck:
test: ["CMD", "php", "-r", "if (@file_get_contents('http://localhost:8080') === false) { exit(1); }"]
interval: 3s
timeout: 1s
retries: 20
dbgate:
image: dbgate/dbgate:alpine
depends_on:
db:
condition: service_healthy
environment:
CONNECTIONS: mysql1
LABEL_mysql1: db.mysql90.devbox.local
SERVER_mysql1: db.mysql90.devbox.local
USER_mysql1: root
PASSWORD_mysql1: ${DEVBOX_MYSQL90_ROOT_PASSWORD:-password}
PORT_mysql1: 3306
ENGINE_mysql1: mysql@dbgate-plugin-mysql
networks:
mysql90_network_local:
aliases:
- dbgate.mysql90.devbox.local
hostname: dbgate.mysql90.devbox.local
ports:
- ${DEVBOX_MYSQL90_DBGATE_EXPORT_PORT:-16409}:3000
healthcheck:
test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"]
interval: 3s
timeout: 1s
retries: 20

volumes:
mysql90_data:

networks:
mysql90_network_local:
driver: bridge
24 changes: 12 additions & 12 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,18 @@ This project is using Docker by default, if you want to use Podman instead, you

## Services provided

* Apache Kafka 2.7 on Confluent Platform [6.1.1](https://docs.confluent.io/platform/6.1.1/release-notes/index.html)
* Beanstalkd [1.12](https://beanstalkd.github.io/2020/06/04/1.12-release-notes.html)
* Keycloak [24.0](https://www.keycloak.org/docs/latest/release_notes/index.html#keycloak-24-0-0), [25.0](https://www.keycloak.org/docs/latest/release_notes/index.html#keycloak-25-0-0)
* MariaDB [10.5](https://mariadb.com/kb/en/mariadb-server-10-5/), [10.6](https://mariadb.com/kb/en/mariadb-server-10-6/), [11.0](https://mariadb.com/kb/en/mariadb-server-11-0/)
* Memcached [1.6](https://memcached.org/)
* [MinIO](https://min.io/)
* MongoDB [4.4](https://docs.mongodb.com/manual/release-notes/4.4/), [5.0](https://docs.mongodb.com/manual/release-notes/5.0/), [6.0](https://docs.mongodb.com/manual/release-notes/6.0/), [7.0](https://docs.mongodb.com/manual/release-notes/7.0/)
* MySQL [5.7](https://dev.mysql.com/doc/relnotes/mysql/5.7/en/), [8.0](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/)
* Postgres [13.2](https://www.postgresql.org/docs/13/release-13-2.html), [14.2](https://www.postgresql.org/docs/14/release-14-2.html), [15.3](https://www.postgresql.org/docs/15/release-15-3.html)
* RabbitMQ [3.10](https://blog.rabbitmq.com/tags/v3.10.x/)
* Redis [6.2](https://raw.githubusercontent.com/redis/redis/6.2/00-RELEASENOTES), [7.0](https://raw.githubusercontent.com/redis/redis/7.0/00-RELEASENOTES), [7.2](https://raw.githubusercontent.com/redis/redis/7.2/00-RELEASENOTES)
* Zipkin [3.1](https://github.com/openzipkin/zipkin/releases/tag/3.1.0)
* Apache Kafka 2.7 on Confluent Platform [6.1.1](https://docs.confluent.io/platform/6.1.1/release-notes/index.html).
* Beanstalkd [1.12](https://beanstalkd.github.io/2020/06/04/1.12-release-notes.html).
* Keycloak [24.0](https://www.keycloak.org/docs/latest/release_notes/index.html#keycloak-24-0-0), [25.0](https://www.keycloak.org/docs/latest/release_notes/index.html#keycloak-25-0-0).
* MariaDB [10.5](https://mariadb.com/kb/en/mariadb-server-10-5/), [10.6](https://mariadb.com/kb/en/mariadb-server-10-6/), [11.0](https://mariadb.com/kb/en/mariadb-server-11-0/).
* Memcached [1.6](https://memcached.org/).
* [MinIO](https://min.io/).
* MongoDB [4.4](https://docs.mongodb.com/manual/release-notes/4.4/), [5.0](https://docs.mongodb.com/manual/release-notes/5.0/), [6.0](https://docs.mongodb.com/manual/release-notes/6.0/), [7.0](https://docs.mongodb.com/manual/release-notes/7.0/).
* MySQL [5.7](https://dev.mysql.com/doc/relnotes/mysql/5.7/en/), [8.0](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/), [8.4](https://dev.mysql.com/doc/relnotes/mysql/8.4/en/), [9.0](https://dev.mysql.com/doc/relnotes/mysql/9.0/en/).
* Postgres [13.2](https://www.postgresql.org/docs/13/release-13-2.html), [14.2](https://www.postgresql.org/docs/14/release-14-2.html), [15.3](https://www.postgresql.org/docs/15/release-15-3.html).
* RabbitMQ [3.10](https://blog.rabbitmq.com/tags/v3.10.x/).
* Redis [6.2](https://raw.githubusercontent.com/redis/redis/6.2/00-RELEASENOTES), [7.0](https://raw.githubusercontent.com/redis/redis/7.0/00-RELEASENOTES), [7.2](https://raw.githubusercontent.com/redis/redis/7.2/00-RELEASENOTES).
* Zipkin [3.1](https://github.com/openzipkin/zipkin/releases/tag/3.1.0).

## License
[MIT](/license) license, logo by [Burhan Adiatma](https://www.vecteezy.com/members/gembuls).

0 comments on commit 2dc4f18

Please sign in to comment.