Skip to content

Commit

Permalink
Merge pull request #754 from cybozu-go/issue-753
Browse files Browse the repository at this point in the history
build MySQL and mysqld_exporter images
  • Loading branch information
shunki-fujita authored Nov 13, 2024
2 parents c2b4b0e + 6693ced commit 37fb0c5
Show file tree
Hide file tree
Showing 12 changed files with 116 additions and 69 deletions.
1 change: 1 addition & 0 deletions containers/mysql/8.0.40/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*
40 changes: 40 additions & 0 deletions containers/mysql/8.0.40/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
FROM ghcr.io/cybozu/ubuntu-dev:22.04 AS builder

ARG MYSQL_VERSION=8.0.40

RUN apt-get update && apt-get -y install --no-install-recommends \
cmake \
libncurses5-dev \
libjemalloc-dev \
libnuma-dev \
libaio-dev \
pkg-config

RUN cd tmp/ \
&& curl -fsSL -O https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-${MYSQL_VERSION}.tar.gz \
&& tar -x -z -f mysql-boost-${MYSQL_VERSION}.tar.gz \
&& cd mysql-${MYSQL_VERSION} \
&& mkdir bld \
&& cd bld \
&& cmake .. -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=Release -DWITH_BOOST=$(ls -d ../boost/boost_*) -DWITH_NUMA=1 -DWITH_JEMALLOC=1 -DWITH_PACKAGE_FLAGS=0 \
&& make -j 20 \
&& make install

FROM ghcr.io/cybozu/ubuntu:22.04

COPY --from=builder /usr/local/mysql/LICENSE /usr/local/mysql/LICENSE
COPY --from=builder /usr/local/mysql/bin /usr/local/mysql/bin
COPY --from=builder /usr/local/mysql/lib /usr/local/mysql/lib
COPY --from=builder /usr/local/mysql/share /usr/local/mysql/share

RUN apt-get update \
&& apt-get install -y --no-install-recommends libjemalloc2 libnuma1 libaio1 \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p /var/lib/mysql \
&& chown -R 10000:10000 /var/lib/mysql

ENV PATH=/usr/local/mysql/bin:"$PATH"
VOLUME /var/lib/mysql
ENTRYPOINT ["mysqld"]
EXPOSE 3306 33060 33062 8080
USER 10000:10000
1 change: 1 addition & 0 deletions containers/mysql/8.0.40/TAG
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8.0.40.1
15 changes: 15 additions & 0 deletions containers/mysql/8.0.40/container-structure-test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
schemaVersion: '2.0.0'
fileExistenceTests:
- name: 'mysqld'
path: '/usr/local/mysql/bin/mysqld'
shouldExist: true
isExecutableBy: 'owner'
- name: 'mysql lib'
path: '/usr/local/mysql/lib'
shouldExist: true
- name: 'mysql share'
path: '/usr/local/mysql/share'
shouldExist: true
- name: 'mysql LICENSE'
path: '/usr/local/mysql/LICENSE'
shouldExist: true
1 change: 1 addition & 0 deletions containers/mysql/8.4.3/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*
40 changes: 40 additions & 0 deletions containers/mysql/8.4.3/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
FROM ghcr.io/cybozu/ubuntu-dev:22.04 AS builder

ARG MYSQL_VERSION=8.4.3

RUN apt-get update && apt-get -y install --no-install-recommends \
cmake \
libncurses5-dev \
libjemalloc-dev \
libnuma-dev \
libaio-dev \
pkg-config

RUN cd tmp/ \
&& curl -fsSL -O https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-${MYSQL_VERSION}.tar.gz \
&& tar -x -z -f mysql-${MYSQL_VERSION}.tar.gz \
&& cd mysql-${MYSQL_VERSION} \
&& mkdir bld \
&& cd bld \
&& cmake .. -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=Release -DWITH_NUMA=1 -DWITH_JEMALLOC=1 -DWITH_PACKAGE_FLAGS=0 \
&& make -j 20 \
&& make install

FROM ghcr.io/cybozu/ubuntu:22.04

COPY --from=builder /usr/local/mysql/LICENSE /usr/local/mysql/LICENSE
COPY --from=builder /usr/local/mysql/bin /usr/local/mysql/bin
COPY --from=builder /usr/local/mysql/lib /usr/local/mysql/lib
COPY --from=builder /usr/local/mysql/share /usr/local/mysql/share

RUN apt-get update \
&& apt-get install -y --no-install-recommends libjemalloc2 libnuma1 libaio1 \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p /var/lib/mysql \
&& chown -R 10000:10000 /var/lib/mysql

ENV PATH=/usr/local/mysql/bin:"$PATH"
VOLUME /var/lib/mysql
ENTRYPOINT ["mysqld"]
EXPOSE 3306 33060 33062 8080
USER 10000:10000
1 change: 1 addition & 0 deletions containers/mysql/8.4.3/TAG
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8.4.3.1
15 changes: 15 additions & 0 deletions containers/mysql/8.4.3/container-structure-test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
schemaVersion: '2.0.0'
fileExistenceTests:
- name: 'mysqld'
path: '/usr/local/mysql/bin/mysqld'
shouldExist: true
isExecutableBy: 'owner'
- name: 'mysql lib'
path: '/usr/local/mysql/lib'
shouldExist: true
- name: 'mysql share'
path: '/usr/local/mysql/share'
shouldExist: true
- name: 'mysql LICENSE'
path: '/usr/local/mysql/LICENSE'
shouldExist: true
1 change: 0 additions & 1 deletion containers/mysqld_exporter/.dockerignore
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
*
!mysql84.patch
5 changes: 1 addition & 4 deletions containers/mysqld_exporter/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,9 @@
# Stage1: build from source
FROM ghcr.io/cybozu/golang:1.22-jammy AS build

ARG MYSQLD_EXPORTER_VERSION=v0.15.1

COPY mysql84.patch .
ARG MYSQLD_EXPORTER_VERSION=v0.16.0

RUN git clone -b ${MYSQLD_EXPORTER_VERSION} --depth 1 https://github.com/prometheus/mysqld_exporter \
&& patch -d mysqld_exporter -Np1 < mysql84.patch \
&& make -C mysqld_exporter build

# Stage2: setup runtime container
Expand Down
2 changes: 1 addition & 1 deletion containers/mysqld_exporter/TAG
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.15.1.2
0.16.0.1
63 changes: 0 additions & 63 deletions containers/mysqld_exporter/mysql84.patch

This file was deleted.

0 comments on commit 37fb0c5

Please sign in to comment.