From 01b0159035ee701b7fca10fc0d3f3ee4ee806291 Mon Sep 17 00:00:00 2001 From: Lucas Vieira Date: Mon, 27 Apr 2026 23:03:21 -0300 Subject: [PATCH] fix(rds): install mysql.h headers in fakecloud-mysql image PR #811 cleared the package-install errors but the build still failed on `mysql.h: No such file or directory` because the mysql:8.0 base image (Oracle Linux) doesn't ship the UDF dev headers by default. Add `mysql-community-devel` to the microdnf install list (the package lives in the image's already-enabled `mysql-tools-community` repo), and `libmysqlclient-dev` for the Debian fallback. Drops the `ol8_codeready_builder` repo flag we no longer need. --- crates/fakecloud-rds/assets/mysql/Dockerfile | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/crates/fakecloud-rds/assets/mysql/Dockerfile b/crates/fakecloud-rds/assets/mysql/Dockerfile index 2103503e..c1bacc2c 100644 --- a/crates/fakecloud-rds/assets/mysql/Dockerfile +++ b/crates/fakecloud-rds/assets/mysql/Dockerfile @@ -16,17 +16,21 @@ FROM mysql:${MYSQL_VERSION} USER root # mysql 8.0+ defaults to an Oracle Linux base with `microdnf`; older # tags + the `*-debian` variants ship apt. Pick whichever is present. +# We need build deps (gcc/make), libcurl headers, and the MySQL UDF +# header (`mysql.h`) — the latter ships in `mysql-community-devel`, +# which the image's enabled `mysql-tools-community` repo already +# provides. RUN set -eux; \ if command -v microdnf >/dev/null 2>&1; then \ - microdnf install -y --enablerepo=ol8_codeready_builder \ + microdnf install -y \ gcc make libcurl-devel glibc-devel pkgconf-pkg-config \ - || microdnf install -y \ - gcc make libcurl-devel glibc-devel pkgconf-pkg-config; \ + mysql-community-devel; \ microdnf clean all; \ elif command -v apt-get >/dev/null 2>&1; then \ apt-get update; \ apt-get install -y --no-install-recommends \ - gcc make libcurl4-openssl-dev libc6-dev ca-certificates pkg-config; \ + gcc make libcurl4-openssl-dev libmysqlclient-dev libc6-dev \ + ca-certificates pkg-config; \ rm -rf /var/lib/apt/lists/*; \ else \ echo "no supported package manager found in base image" >&2; \