Skip to content

Commit e6a9320

Browse files
committed
Bump to version 8.0.30. Added MYSQL_ROUTER_ACCOUNT and MYSQL_ROUTER_PASSWORD evn variables.
1 parent 47e6c47 commit e6a9320

File tree

4 files changed

+59
-49
lines changed

4 files changed

+59
-49
lines changed

.github/workflows/docker-image.yml

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,40 @@ on:
66
pull_request:
77
branches: [ master ]
88

9+
env:
10+
CURRENT_MYSQL_VERSION: 8.0.30
11+
CURRENT_MYSQL_MAYOR_VERSION: 8
12+
913
jobs:
1014

1115
build:
1216

1317
runs-on: ubuntu-latest
14-
outputs:
15-
vulnerabilities: "./vulnerabilities.json"
1618
steps:
1719
- uses: actions/checkout@v2
1820
- name: Build the Docker image
19-
run: docker build --pull --no-cache mysqlrouter/ -f mysqlrouter/Dockerfile --tag localbuild/mysqlrouter:latest
21+
run: docker build --pull --no-cache mysqlrouter/ -f mysqlrouter/Dockerfile --tag ${{ secrets.DOCKER_USER }}/mysqlrouter:latest
22+
- name: docker login
23+
env:
24+
DOCKER_USER: ${{ secrets.DOCKER_USER }}
25+
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
26+
run: |
27+
docker login -u $DOCKER_USER -p $DOCKER_PASSWORD
28+
- name: docker push mysqlrouter image
29+
run: |
30+
IMAGE_ID=${{ secrets.DOCKER_USER }}/mysqlrouter:$CURRENT_MYSQL_VERSION
31+
IMAGE_ID_MAYOR=${{ secrets.DOCKER_USER }}/mysqlrouter:$CURRENT_MYSQL_MAYOR_VERSION
32+
echo IMAGE_ID=$IMAGE_ID
33+
echo IMAGE_ID=$IMAGE_ID_MAYOR
34+
docker tag ${{ secrets.DOCKER_USER }}/mysqlrouter:latest $IMAGE_ID
35+
docker tag ${{ secrets.DOCKER_USER }}/mysqlrouter:latest $IMAGE_ID_MAYOR
36+
docker push $IMAGE_ID
37+
docker push $IMAGE_ID_MAYOR
38+
docker push ${{ secrets.DOCKER_USER }}/mysqlrouter:latest
2039
- uses: anchore/scan-action@v2
2140
id: scan
2241
with:
23-
image: "localbuild/mysqlrouter:latest"
42+
image: "${{ secrets.DOCKER_USER }}/mysqlrouter:latest"
2443
acs-report-enable: true
2544
- name: upload Anchore scan SARIF report
2645
uses: github/codeql-action/upload-sarif@v1

mysqlrouter/Dockerfile

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,21 @@
1-
FROM debian:buster-slim
1+
FROM debian:bullseye-slim
22

3-
RUN apt-get update && apt-get -y upgrade && apt-get install -y --no-install-recommends wget lsb-release gnupg hostname dirmngr && rm -rf /var/lib/apt/lists/*
4-
RUN mkdir ~/.gnupg && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf
3+
RUN apt-get update && apt-get install -y --no-install-recommends wget lsb-release hostname gnupg dirmngr
54

6-
RUN set -ex; \
7-
# gpg: key 5072E1F5: public key "MySQL Release Engineering <[email protected]>" imported
8-
key='A4A9406876FCBD3C456770C88C718D3B5072E1F5'; \
5+
RUN set -eux; \
6+
# gpg: key 3A79BD29: public key "MySQL Release Engineering <[email protected]>" imported
7+
key='859BE8D7C586F538430B19C2467B942D3A79BD29'; \
98
export GNUPGHOME="$(mktemp -d)"; \
10-
#gpg --batch --keyserver-options "timeout=10 http-proxy=$http_proxy" --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
11-
gpg --batch --keyserver-options "timeout=10" --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
12-
gpg --batch --export "$key" > /etc/apt/trusted.gpg.d/mysql.gpg; \
9+
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
10+
mkdir -p /etc/apt/keyrings; \
11+
gpg --batch --export "$key" > /etc/apt/keyrings/mysql.gpg; \
1312
gpgconf --kill all; \
14-
rm -rf "$GNUPGHOME"; \
15-
apt-key list > /dev/null
13+
rm -rf "$GNUPGHOME"
1614

1715
ENV MYSQL_MAJOR 8.0
18-
ENV MYSQL_VERSION 8.0.24-1debian10
16+
ENV MYSQL_VERSION 8.0.30-1debian10
1917

20-
RUN echo "deb http://repo.mysql.com/apt/debian/ buster mysql-${MYSQL_MAJOR}" > /etc/apt/sources.list.d/mysql.list
18+
RUN echo 'deb [ signed-by=/etc/apt/keyrings/mysql.gpg ] http://repo.mysql.com/apt/debian/ buster mysql-8.0' > /etc/apt/sources.list.d/mysql.list
2119

2220
# the "/var/lib/mysql" stuff here is because the mysql-server postinst doesn't have an explicit way to disable the mysql_install_db codepath besides having a database already "configured" (ie, stuff in /var/lib/mysql/mysql)
2321
# also, we set debconf keys to make APT a little quieter
@@ -29,13 +27,8 @@ RUN { \
2927
} | debconf-set-selections \
3028
&& apt-get update && DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt-get install -y mysql-client="${MYSQL_VERSION}" mysql-community-client="${MYSQL_VERSION}" && rm -rf /var/lib/apt/lists/*
3129

32-
RUN wget --no-check-certificate https://dev.mysql.com/get/mysql-apt-config_0.8.16-1_all.deb && dpkg -i mysql-apt-config_0.8.16-1_all.deb # Ref. https://dev.mysql.com/downloads/
33-
RUN apt-get update && apt-get install -y --no-install-recommends mysql-router && rm -rf /var/lib/apt/lists/*
34-
35-
#ARG MYSQL_ROUTER_VERSION=8.0.18-1debian10_amd64
36-
#RUN wget --no-check-certificate https://downloads.mysql.com/archives/get/p/41/file/mysql-router-community_${MYSQL_ROUTER_VERSION}.deb \
37-
# && dpkg -i mysql-router-community_${MYSQL_ROUTER_VERSION}.deb\
38-
# && rm -rf mysql-router-community_${MYSQL_ROUTER_VERSION}.deb
30+
RUN wget --no-check-certificate https://dev.mysql.com/get/mysql-apt-config_0.8.23-1_all.deb && dpkg -i mysql-apt-config_0.8.23-1_all.deb # Ref. https://dev.mysql.com/downloads/
31+
RUN apt-get update && apt-get install -y --no-install-recommends mysql-router && apt-get remove -y wget lsb-release gnupg dirmngr && apt autoremove -y && rm -rf /var/lib/apt/lists/*
3932

4033
RUN rm -rf /etc/mysqlrouter # cleanup
4134

mysqlrouter/docker-entrypoint.sh

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ BASE_PATH=/app/mysqlrouter
1919

2020
if [ "$1" = 'mysqlrouter' ]; then
2121
if [[ -z $MYSQL_HOST || -z $MYSQL_PORT || -z $MYSQL_USER || -z $MYSQL_PASSWORD ]]; then
22-
echo "We require all of"
23-
echo " MYSQL_HOST"
24-
echo " MYSQL_PORT"
25-
echo " MYSQL_USER"
26-
echo " MYSQL_PASSWORD"
27-
echo "to be set. Exiting."
28-
exit 1
22+
echo "We require all of"
23+
echo " MYSQL_HOST"
24+
echo " MYSQL_PORT"
25+
echo " MYSQL_USER"
26+
echo " MYSQL_PASSWORD"
27+
echo "to be set. Exiting."
28+
exit 1
2929
fi
3030

3131
PASSFILE=$(mktemp)
@@ -37,14 +37,14 @@ password="$MYSQL_PASSWORD"
3737
EOF
3838
unset MYSQL_PASSWORD
3939
until mysql --defaults-extra-file="$DEFAULTS_EXTRA_FILE" -h "$MYSQL_HOST" -P"$MYSQL_PORT" -u "$MYSQL_USER" -nsLNE -e 'exit'; do
40-
>&2 echo "MySQL is unavailable - sleeping"
41-
sleep 5
40+
>&2 echo "MySQL is unavailable - sleeping"
41+
sleep 5
4242
done
4343

4444
echo "Succesfully contacted mysql server at $MYSQL_HOST. Checking for cluster state."
4545
if ! [[ "$(mysql --defaults-extra-file="$DEFAULTS_EXTRA_FILE" -u "$MYSQL_USER" -h "$MYSQL_HOST" -P "$MYSQL_PORT" -e "show status;" 2> /dev/null)" ]]; then
46-
echo "Can not connect to database. Exiting."
47-
exit 1
46+
echo "Can not connect to database. Exiting."
47+
exit 1
4848
fi
4949

5050
echo "Check if config exist"
@@ -53,8 +53,19 @@ EOF
5353
echo "Start mysqlrouter"
5454
exec "$@" --config $BASE_PATH/mysqlrouter.conf
5555
else
56+
if [[ -z $MYSQL_ROUTER_ACCOUNT ]]; then
57+
echo "MYSQL_ROUTER_ACCOUNT env var is not defined. mysqlrouter will bootstrap with a random user"
58+
else
59+
if [[ -z $MYSQL_ROUTER_PASSWORD ]]; then
60+
echo "MYSQL_ROUTER_PASSWORD is required when MYSQL_ROUTER_ACCOUNT is defined"
61+
exit 1
62+
fi
63+
echo $MYSQL_ROUTER_PASSWORD >> "$PASSFILE"
64+
echo "bootstrap mysqlrouter with account $MYSQL_ROUTER_ACCOUNT"
65+
ACCOUNT_PARAMETER="--account $MYSQL_ROUTER_ACCOUNT --account-create always"
66+
fi
5667
echo "Succesfully contacted mysql server at $MYSQL_HOST. Trying to bootstrap."
57-
mysqlrouter --bootstrap "$MYSQL_USER@$MYSQL_HOST:$MYSQL_PORT" --user=mysqlrouter --directory $BASE_PATH --force < "$PASSFILE"
68+
mysqlrouter --bootstrap "$MYSQL_USER@$MYSQL_HOST:$MYSQL_PORT" --user=mysqlrouter --directory $BASE_PATH $ACCOUNT_PARAMETER --force < "$PASSFILE"
5869
sed -i -e 's/logging_folder=.*$/logging_folder=/' $BASE_PATH/mysqlrouter.conf
5970
echo "Starting mysql-router."
6071
exec "$@" --config $BASE_PATH/mysqlrouter.conf

mysqlrouter/hooks/post_push

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)