Skip to content

Commit b5573a3

Browse files
committed
Merge pull request #7 from infosiftr/5.7
Add the 5.7.4-m14 Development Release
2 parents c0be661 + fd3bd50 commit b5573a3

File tree

4 files changed

+91
-3
lines changed

4 files changed

+91
-3
lines changed

5.6/docker-entrypoint.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@ if [ -z "$(ls -A /var/lib/mysql)" -a "${1%_safe}" = 'mysqld' ]; then
1515
# TODO proper SQL escaping on ALL the things D:
1616
TEMP_FILE='/tmp/mysql-first-time.sql'
1717
cat > "$TEMP_FILE" <<-EOSQL
18-
UPDATE mysql.user SET host = "%", password = PASSWORD("${MYSQL_ROOT_PASSWORD}") WHERE user = "root" LIMIT 1 ;
19-
DELETE FROM mysql.user WHERE user != "root" OR host != "%" ;
18+
DELETE FROM mysql.user ;
19+
CREATE USER 'root'@'%' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}' ;
20+
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION ;
2021
DROP DATABASE IF EXISTS test ;
2122
EOSQL
2223

5.7/Dockerfile

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
FROM debian:wheezy
2+
3+
# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
4+
RUN groupadd -r mysql && useradd -r -g mysql mysql
5+
6+
RUN apt-get update && apt-get install -y \
7+
bison \
8+
build-essential \
9+
cmake \
10+
curl \
11+
libncurses5-dev
12+
13+
ENV MYSQL_MAJOR 5.7
14+
ENV MYSQL_VERSION 5.7.4-m14
15+
16+
RUN mkdir /usr/src/mysql \
17+
&& curl -SL "https://dev.mysql.com/get/Downloads/MySQL-$MYSQL_MAJOR/mysql-$MYSQL_VERSION.tar.gz" \
18+
| tar -xzC /usr/src/mysql --strip-components=1 \
19+
&& cd /usr/src/mysql \
20+
&& cmake . -DCMAKE_BUILD_TYPE=Release \
21+
-DWITH_EMBEDDED_SERVER=OFF \
22+
&& make -j"$(nproc)" \
23+
&& make test \
24+
&& make install \
25+
&& cd .. \
26+
&& rm -rf mysql \
27+
&& rm -rf /usr/local/mysql/mysql-test \
28+
&& rm -rf /usr/local/mysql/sql-bench \
29+
&& find /usr/local/mysql -type f -name "*.a" -delete \
30+
&& { find /usr/local/mysql -type f -executable -exec strip --strip-all '{}' + || true; }
31+
ENV PATH $PATH:/usr/local/mysql/bin:/usr/local/mysql/scripts
32+
33+
WORKDIR /usr/local/mysql
34+
VOLUME /var/lib/mysql
35+
36+
ADD docker-entrypoint.sh /entrypoint.sh
37+
ENTRYPOINT ["/entrypoint.sh"]
38+
39+
EXPOSE 3306
40+
CMD ["mysqld", "--datadir=/var/lib/mysql", "--user=mysql"]

5.7/docker-entrypoint.sh

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/bash
2+
set -e
3+
4+
if [ -z "$(ls -A /var/lib/mysql)" -a "${1%_safe}" = 'mysqld' ]; then
5+
if [ -z "$MYSQL_ROOT_PASSWORD" ]; then
6+
echo >&2 'error: database is uninitialized and MYSQL_ROOT_PASSWORD not set'
7+
echo >&2 ' Did you forget to add -e MYSQL_ROOT_PASSWORD=... ?'
8+
exit 1
9+
fi
10+
11+
mysql_install_db --user=mysql --datadir=/var/lib/mysql
12+
13+
# These statements _must_ be on individual lines, and _must_ end with
14+
# semicolons (no line breaks or comments are permitted).
15+
# TODO proper SQL escaping on ALL the things D:
16+
TEMP_FILE='/tmp/mysql-first-time.sql'
17+
cat > "$TEMP_FILE" <<-EOSQL
18+
DELETE FROM mysql.user ;
19+
CREATE USER 'root'@'%' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}' ;
20+
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION ;
21+
DROP DATABASE IF EXISTS test ;
22+
EOSQL
23+
24+
if [ "$MYSQL_DATABASE" ]; then
25+
echo "CREATE DATABASE IF NOT EXISTS $MYSQL_DATABASE ;" >> "$TEMP_FILE"
26+
fi
27+
28+
if [ "$MYSQL_USER" -a "$MYSQL_PASSWORD" ]; then
29+
echo "CREATE USER '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD' ;" >> "$TEMP_FILE"
30+
31+
if [ "$MYSQL_DATABASE" ]; then
32+
echo "GRANT ALL ON $MYSQL_DATABASE.* TO '$MYSQL_USER'@'%' ;" >> "$TEMP_FILE"
33+
fi
34+
fi
35+
36+
echo 'FLUSH PRIVILEGES ;' >> "$TEMP_FILE"
37+
38+
set -- "$@" --init-file="$TEMP_FILE"
39+
fi
40+
41+
chown -R mysql:mysql /var/lib/mysql
42+
exec "$@"

generate-stackbrew-library.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,12 @@ echo '# maintainer: InfoSiftr <github@infosiftr.com> (@infosiftr)'
1717
for version in "${versions[@]}"; do
1818
commit="$(git log -1 --format='format:%H' "$version")"
1919
fullVersion="$(grep -m1 'ENV MYSQL_VERSION ' "$version/Dockerfile" | cut -d' ' -f3)"
20-
versionAliases=( $fullVersion $version ${aliases[$version]} )
20+
versionAliases=()
21+
while [ "$fullVersion" != "$version" -a "${fullVersion%[.-]*}" != "$fullVersion" ]; do
22+
versionAliases+=( $fullVersion )
23+
fullVersion="${fullVersion%[.-]*}"
24+
done
25+
versionAliases+=( $version ${aliases[$version]} )
2126

2227
echo
2328
for va in "${versionAliases[@]}"; do

0 commit comments

Comments
 (0)