Add arch support! (some of amd64, arm64v8, i386, ppc64le)
This commit is contained in:
parent
92a813379a
commit
852044c20c
49
.architectures-lib
Normal file
49
.architectures-lib
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
_awkArch() {
|
||||||
|
local version="$1"; shift
|
||||||
|
local awkExpr="$1"; shift
|
||||||
|
awk "$@" "/^#|^\$/ { next } $awkExpr" "$version/release-architectures"
|
||||||
|
}
|
||||||
|
|
||||||
|
hasBashbrewArch() {
|
||||||
|
local version="$1"; shift
|
||||||
|
local bashbrewArch="$1"; shift
|
||||||
|
_awkArch "$version" 'BEGIN { exitCode = 1 } $1 == bashbrewArch { exitCode = 0 } END { exit exitCode }' -v bashbrewArch="$bashbrewArch"
|
||||||
|
}
|
||||||
|
|
||||||
|
_generateParentRepoToArches() {
|
||||||
|
local repo="$1"; shift
|
||||||
|
local officialImagesUrl='https://github.com/docker-library/official-images/raw/master/library/'
|
||||||
|
|
||||||
|
eval "declare -g -A parentRepoToArches=( $(
|
||||||
|
find -name 'Dockerfile' -exec awk '
|
||||||
|
toupper($1) == "FROM" && $2 !~ /^('"$repo"'|scratch|microsoft\/[^:]+)(:|$)/ {
|
||||||
|
print "'"$officialImagesUrl"'" $2
|
||||||
|
}
|
||||||
|
' '{}' + \
|
||||||
|
| sort -u \
|
||||||
|
| xargs bashbrew cat --format '[{{ .RepoName }}:{{ .TagName }}]="{{ join " " .TagEntry.Architectures }}"'
|
||||||
|
) )"
|
||||||
|
}
|
||||||
|
_generateParentRepoToArches 'mariadb'
|
||||||
|
|
||||||
|
parentArches() {
|
||||||
|
local version="$1"; shift # "1.8", etc
|
||||||
|
|
||||||
|
local parent="$(awk 'toupper($1) == "FROM" { print $2 }' "$version/Dockerfile")"
|
||||||
|
echo "${parentRepoToArches[$parent]:-}"
|
||||||
|
}
|
||||||
|
versionArches() {
|
||||||
|
local version="$1"; shift # "1.8", etc
|
||||||
|
|
||||||
|
local parentArches="$(parentArches "$version")"
|
||||||
|
|
||||||
|
local variantArches=()
|
||||||
|
for arch in $parentArches; do
|
||||||
|
if hasBashbrewArch "$version" "$arch"; then
|
||||||
|
variantArches+=( "$arch" )
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "${variantArches[*]}"
|
||||||
|
}
|
@ -86,15 +86,6 @@ RUN set -ex; \
|
|||||||
rm -r "$GNUPGHOME"; \
|
rm -r "$GNUPGHOME"; \
|
||||||
apt-key list
|
apt-key list
|
||||||
|
|
||||||
# add Percona's repo for xtrabackup (which is useful for Galera)
|
|
||||||
RUN set -e; \
|
|
||||||
echo "deb https://repo.percona.com/apt xenial main" > /etc/apt/sources.list.d/percona.list; \
|
|
||||||
{ \
|
|
||||||
echo 'Package: *'; \
|
|
||||||
echo 'Pin: release o=Percona Development Team'; \
|
|
||||||
echo 'Pin-Priority: 998'; \
|
|
||||||
} > /etc/apt/preferences.d/percona
|
|
||||||
|
|
||||||
ENV MARIADB_MAJOR 10.0
|
ENV MARIADB_MAJOR 10.0
|
||||||
ENV MARIADB_VERSION 10.0.35+maria-1~xenial
|
ENV MARIADB_VERSION 10.0.35+maria-1~xenial
|
||||||
|
|
||||||
@ -115,11 +106,29 @@ RUN set -ex; \
|
|||||||
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password password 'unused'; \
|
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password password 'unused'; \
|
||||||
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password_again password 'unused'; \
|
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password_again password 'unused'; \
|
||||||
} | debconf-set-selections; \
|
} | debconf-set-selections; \
|
||||||
|
XTRABACKUP='percona-xtrabackup'; \
|
||||||
|
##<autogenerated> from Dockerfile-percona-block ##
|
||||||
|
# add Percona's repo for xtrabackup (which is useful for Galera)
|
||||||
|
echo "deb [arch=amd64,i386] https://repo.percona.com/apt xenial main" > /etc/apt/sources.list.d/percona.list; \
|
||||||
|
{ \
|
||||||
|
echo 'Package: *'; \
|
||||||
|
echo 'Pin: release o=Percona Development Team'; \
|
||||||
|
echo 'Pin-Priority: 998'; \
|
||||||
|
} > /etc/apt/preferences.d/percona; \
|
||||||
|
# percona-xtrabackup is amd64/i386 only (mariadb-backup is on all arches that mariadb-server is)
|
||||||
|
dpkgArch="$(dpkg --print-architecture)"; \
|
||||||
|
if [[ "$XTRABACKUP" == percona* ]]; then \
|
||||||
|
case "${dpkgArch##*-}" in \
|
||||||
|
amd64|i396) ;; \
|
||||||
|
*) XTRABACKUP= ;; \
|
||||||
|
esac; \
|
||||||
|
fi; \
|
||||||
|
##</autogenerated>##
|
||||||
apt-get update; \
|
apt-get update; \
|
||||||
apt-get install -y \
|
apt-get install -y \
|
||||||
"mariadb-server=$MARIADB_VERSION" \
|
"mariadb-server=$MARIADB_VERSION" \
|
||||||
# percona-xtrabackup/mariadb-backup is installed at the same time so that `mysql-common` is only installed once from just mariadb repos
|
# percona-xtrabackup/mariadb-backup is installed at the same time so that `mysql-common` is only installed once from just mariadb repos
|
||||||
percona-xtrabackup \
|
$XTRABACKUP \
|
||||||
socat \
|
socat \
|
||||||
; \
|
; \
|
||||||
rm -rf /var/lib/apt/lists/*; \
|
rm -rf /var/lib/apt/lists/*; \
|
||||||
|
5
10.0/release-architectures
Normal file
5
10.0/release-architectures
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# bashbrew-arches
|
||||||
|
ppc64le
|
||||||
|
i386
|
||||||
|
amd64
|
||||||
|
arm64v8
|
@ -86,15 +86,6 @@ RUN set -ex; \
|
|||||||
rm -r "$GNUPGHOME"; \
|
rm -r "$GNUPGHOME"; \
|
||||||
apt-key list
|
apt-key list
|
||||||
|
|
||||||
# add Percona's repo for xtrabackup (which is useful for Galera)
|
|
||||||
RUN set -e; \
|
|
||||||
echo "deb https://repo.percona.com/apt bionic main" > /etc/apt/sources.list.d/percona.list; \
|
|
||||||
{ \
|
|
||||||
echo 'Package: *'; \
|
|
||||||
echo 'Pin: release o=Percona Development Team'; \
|
|
||||||
echo 'Pin-Priority: 998'; \
|
|
||||||
} > /etc/apt/preferences.d/percona
|
|
||||||
|
|
||||||
ENV MARIADB_MAJOR 10.1
|
ENV MARIADB_MAJOR 10.1
|
||||||
ENV MARIADB_VERSION 1:10.1.34+maria-1~bionic
|
ENV MARIADB_VERSION 1:10.1.34+maria-1~bionic
|
||||||
|
|
||||||
@ -115,11 +106,12 @@ RUN set -ex; \
|
|||||||
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password password 'unused'; \
|
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password password 'unused'; \
|
||||||
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password_again password 'unused'; \
|
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password_again password 'unused'; \
|
||||||
} | debconf-set-selections; \
|
} | debconf-set-selections; \
|
||||||
|
XTRABACKUP='mariadb-backup-10.1'; \
|
||||||
apt-get update; \
|
apt-get update; \
|
||||||
apt-get install -y \
|
apt-get install -y \
|
||||||
"mariadb-server=$MARIADB_VERSION" \
|
"mariadb-server=$MARIADB_VERSION" \
|
||||||
# percona-xtrabackup/mariadb-backup is installed at the same time so that `mysql-common` is only installed once from just mariadb repos
|
# percona-xtrabackup/mariadb-backup is installed at the same time so that `mysql-common` is only installed once from just mariadb repos
|
||||||
mariadb-backup-10.1 \
|
$XTRABACKUP \
|
||||||
socat \
|
socat \
|
||||||
; \
|
; \
|
||||||
rm -rf /var/lib/apt/lists/*; \
|
rm -rf /var/lib/apt/lists/*; \
|
||||||
|
4
10.1/release-architectures
Normal file
4
10.1/release-architectures
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# bashbrew-arches
|
||||||
|
ppc64le
|
||||||
|
amd64
|
||||||
|
arm64v8
|
@ -86,15 +86,6 @@ RUN set -ex; \
|
|||||||
rm -r "$GNUPGHOME"; \
|
rm -r "$GNUPGHOME"; \
|
||||||
apt-key list
|
apt-key list
|
||||||
|
|
||||||
# add Percona's repo for xtrabackup (which is useful for Galera)
|
|
||||||
RUN set -e; \
|
|
||||||
echo "deb https://repo.percona.com/apt bionic main" > /etc/apt/sources.list.d/percona.list; \
|
|
||||||
{ \
|
|
||||||
echo 'Package: *'; \
|
|
||||||
echo 'Pin: release o=Percona Development Team'; \
|
|
||||||
echo 'Pin-Priority: 998'; \
|
|
||||||
} > /etc/apt/preferences.d/percona
|
|
||||||
|
|
||||||
ENV MARIADB_MAJOR 10.2
|
ENV MARIADB_MAJOR 10.2
|
||||||
ENV MARIADB_VERSION 1:10.2.16+maria~bionic
|
ENV MARIADB_VERSION 1:10.2.16+maria~bionic
|
||||||
|
|
||||||
@ -115,11 +106,12 @@ RUN set -ex; \
|
|||||||
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password password 'unused'; \
|
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password password 'unused'; \
|
||||||
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password_again password 'unused'; \
|
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password_again password 'unused'; \
|
||||||
} | debconf-set-selections; \
|
} | debconf-set-selections; \
|
||||||
|
XTRABACKUP='mariadb-backup-10.2'; \
|
||||||
apt-get update; \
|
apt-get update; \
|
||||||
apt-get install -y \
|
apt-get install -y \
|
||||||
"mariadb-server=$MARIADB_VERSION" \
|
"mariadb-server=$MARIADB_VERSION" \
|
||||||
# percona-xtrabackup/mariadb-backup is installed at the same time so that `mysql-common` is only installed once from just mariadb repos
|
# percona-xtrabackup/mariadb-backup is installed at the same time so that `mysql-common` is only installed once from just mariadb repos
|
||||||
mariadb-backup-10.2 \
|
$XTRABACKUP \
|
||||||
socat \
|
socat \
|
||||||
; \
|
; \
|
||||||
rm -rf /var/lib/apt/lists/*; \
|
rm -rf /var/lib/apt/lists/*; \
|
||||||
|
5
10.2/release-architectures
Normal file
5
10.2/release-architectures
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# bashbrew-arches
|
||||||
|
ppc64le
|
||||||
|
i386
|
||||||
|
amd64
|
||||||
|
arm64v8
|
@ -86,15 +86,6 @@ RUN set -ex; \
|
|||||||
rm -r "$GNUPGHOME"; \
|
rm -r "$GNUPGHOME"; \
|
||||||
apt-key list
|
apt-key list
|
||||||
|
|
||||||
# add Percona's repo for xtrabackup (which is useful for Galera)
|
|
||||||
RUN set -e; \
|
|
||||||
echo "deb https://repo.percona.com/apt bionic main" > /etc/apt/sources.list.d/percona.list; \
|
|
||||||
{ \
|
|
||||||
echo 'Package: *'; \
|
|
||||||
echo 'Pin: release o=Percona Development Team'; \
|
|
||||||
echo 'Pin-Priority: 998'; \
|
|
||||||
} > /etc/apt/preferences.d/percona
|
|
||||||
|
|
||||||
ENV MARIADB_MAJOR 10.3
|
ENV MARIADB_MAJOR 10.3
|
||||||
ENV MARIADB_VERSION 1:10.3.8+maria~bionic
|
ENV MARIADB_VERSION 1:10.3.8+maria~bionic
|
||||||
|
|
||||||
@ -115,11 +106,12 @@ RUN set -ex; \
|
|||||||
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password password 'unused'; \
|
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password password 'unused'; \
|
||||||
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password_again password 'unused'; \
|
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password_again password 'unused'; \
|
||||||
} | debconf-set-selections; \
|
} | debconf-set-selections; \
|
||||||
|
XTRABACKUP='mariadb-backup'; \
|
||||||
apt-get update; \
|
apt-get update; \
|
||||||
apt-get install -y \
|
apt-get install -y \
|
||||||
"mariadb-server=$MARIADB_VERSION" \
|
"mariadb-server=$MARIADB_VERSION" \
|
||||||
# percona-xtrabackup/mariadb-backup is installed at the same time so that `mysql-common` is only installed once from just mariadb repos
|
# percona-xtrabackup/mariadb-backup is installed at the same time so that `mysql-common` is only installed once from just mariadb repos
|
||||||
mariadb-backup \
|
$XTRABACKUP \
|
||||||
socat \
|
socat \
|
||||||
; \
|
; \
|
||||||
rm -rf /var/lib/apt/lists/*; \
|
rm -rf /var/lib/apt/lists/*; \
|
||||||
|
4
10.3/release-architectures
Normal file
4
10.3/release-architectures
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# bashbrew-arches
|
||||||
|
ppc64le
|
||||||
|
amd64
|
||||||
|
arm64v8
|
@ -86,15 +86,6 @@ RUN set -ex; \
|
|||||||
rm -r "$GNUPGHOME"; \
|
rm -r "$GNUPGHOME"; \
|
||||||
apt-key list
|
apt-key list
|
||||||
|
|
||||||
# add Percona's repo for xtrabackup (which is useful for Galera)
|
|
||||||
RUN set -e; \
|
|
||||||
echo "deb https://repo.percona.com/apt trusty main" > /etc/apt/sources.list.d/percona.list; \
|
|
||||||
{ \
|
|
||||||
echo 'Package: *'; \
|
|
||||||
echo 'Pin: release o=Percona Development Team'; \
|
|
||||||
echo 'Pin-Priority: 998'; \
|
|
||||||
} > /etc/apt/preferences.d/percona
|
|
||||||
|
|
||||||
ENV MARIADB_MAJOR 5.5
|
ENV MARIADB_MAJOR 5.5
|
||||||
ENV MARIADB_VERSION 5.5.60+maria-1~trusty
|
ENV MARIADB_VERSION 5.5.60+maria-1~trusty
|
||||||
|
|
||||||
@ -115,11 +106,29 @@ RUN set -ex; \
|
|||||||
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password password 'unused'; \
|
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password password 'unused'; \
|
||||||
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password_again password 'unused'; \
|
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password_again password 'unused'; \
|
||||||
} | debconf-set-selections; \
|
} | debconf-set-selections; \
|
||||||
|
XTRABACKUP='percona-xtrabackup'; \
|
||||||
|
##<autogenerated> from Dockerfile-percona-block ##
|
||||||
|
# add Percona's repo for xtrabackup (which is useful for Galera)
|
||||||
|
echo "deb [arch=amd64,i386] https://repo.percona.com/apt trusty main" > /etc/apt/sources.list.d/percona.list; \
|
||||||
|
{ \
|
||||||
|
echo 'Package: *'; \
|
||||||
|
echo 'Pin: release o=Percona Development Team'; \
|
||||||
|
echo 'Pin-Priority: 998'; \
|
||||||
|
} > /etc/apt/preferences.d/percona; \
|
||||||
|
# percona-xtrabackup is amd64/i386 only (mariadb-backup is on all arches that mariadb-server is)
|
||||||
|
dpkgArch="$(dpkg --print-architecture)"; \
|
||||||
|
if [[ "$XTRABACKUP" == percona* ]]; then \
|
||||||
|
case "${dpkgArch##*-}" in \
|
||||||
|
amd64|i396) ;; \
|
||||||
|
*) XTRABACKUP= ;; \
|
||||||
|
esac; \
|
||||||
|
fi; \
|
||||||
|
##</autogenerated>##
|
||||||
apt-get update; \
|
apt-get update; \
|
||||||
apt-get install -y \
|
apt-get install -y \
|
||||||
"mariadb-server=$MARIADB_VERSION" \
|
"mariadb-server=$MARIADB_VERSION" \
|
||||||
# percona-xtrabackup/mariadb-backup is installed at the same time so that `mysql-common` is only installed once from just mariadb repos
|
# percona-xtrabackup/mariadb-backup is installed at the same time so that `mysql-common` is only installed once from just mariadb repos
|
||||||
percona-xtrabackup \
|
$XTRABACKUP \
|
||||||
socat \
|
socat \
|
||||||
; \
|
; \
|
||||||
rm -rf /var/lib/apt/lists/*; \
|
rm -rf /var/lib/apt/lists/*; \
|
||||||
|
4
5.5/release-architectures
Normal file
4
5.5/release-architectures
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# bashbrew-arches
|
||||||
|
ppc64le
|
||||||
|
i386
|
||||||
|
amd64
|
17
Dockerfile-percona-block
Normal file
17
Dockerfile-percona-block
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
##<autogenerated> from Dockerfile-percona-block ##
|
||||||
|
# add Percona's repo for xtrabackup (which is useful for Galera)
|
||||||
|
echo "deb [arch=amd64,i386] https://repo.percona.com/apt %%SUITE%% main" > /etc/apt/sources.list.d/percona.list; \
|
||||||
|
{ \
|
||||||
|
echo 'Package: *'; \
|
||||||
|
echo 'Pin: release o=Percona Development Team'; \
|
||||||
|
echo 'Pin-Priority: 998'; \
|
||||||
|
} > /etc/apt/preferences.d/percona; \
|
||||||
|
# percona-xtrabackup is amd64/i386 only (mariadb-backup is on all arches that mariadb-server is)
|
||||||
|
dpkgArch="$(dpkg --print-architecture)"; \
|
||||||
|
if [[ "$XTRABACKUP" == percona* ]]; then \
|
||||||
|
case "${dpkgArch##*-}" in \
|
||||||
|
amd64|i396) ;; \
|
||||||
|
*) XTRABACKUP= ;; \
|
||||||
|
esac; \
|
||||||
|
fi; \
|
||||||
|
##</autogenerated>##
|
@ -86,15 +86,6 @@ RUN set -ex; \
|
|||||||
rm -r "$GNUPGHOME"; \
|
rm -r "$GNUPGHOME"; \
|
||||||
apt-key list
|
apt-key list
|
||||||
|
|
||||||
# add Percona's repo for xtrabackup (which is useful for Galera)
|
|
||||||
RUN set -e; \
|
|
||||||
echo "deb https://repo.percona.com/apt %%SUITE%% main" > /etc/apt/sources.list.d/percona.list; \
|
|
||||||
{ \
|
|
||||||
echo 'Package: *'; \
|
|
||||||
echo 'Pin: release o=Percona Development Team'; \
|
|
||||||
echo 'Pin-Priority: 998'; \
|
|
||||||
} > /etc/apt/preferences.d/percona
|
|
||||||
|
|
||||||
ENV MARIADB_MAJOR %%MARIADB_MAJOR%%
|
ENV MARIADB_MAJOR %%MARIADB_MAJOR%%
|
||||||
ENV MARIADB_VERSION %%MARIADB_VERSION%%
|
ENV MARIADB_VERSION %%MARIADB_VERSION%%
|
||||||
|
|
||||||
@ -115,11 +106,12 @@ RUN set -ex; \
|
|||||||
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password password 'unused'; \
|
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password password 'unused'; \
|
||||||
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password_again password 'unused'; \
|
echo "mariadb-server-$MARIADB_MAJOR" mysql-server/root_password_again password 'unused'; \
|
||||||
} | debconf-set-selections; \
|
} | debconf-set-selections; \
|
||||||
|
XTRABACKUP='%%XTRABACKUP%%'; \
|
||||||
apt-get update; \
|
apt-get update; \
|
||||||
apt-get install -y \
|
apt-get install -y \
|
||||||
"mariadb-server=$MARIADB_VERSION" \
|
"mariadb-server=$MARIADB_VERSION" \
|
||||||
# percona-xtrabackup/mariadb-backup is installed at the same time so that `mysql-common` is only installed once from just mariadb repos
|
# percona-xtrabackup/mariadb-backup is installed at the same time so that `mysql-common` is only installed once from just mariadb repos
|
||||||
%%XTRABACKUP%% \
|
$XTRABACKUP \
|
||||||
socat \
|
socat \
|
||||||
; \
|
; \
|
||||||
rm -rf /var/lib/apt/lists/*; \
|
rm -rf /var/lib/apt/lists/*; \
|
||||||
|
@ -9,6 +9,8 @@ declare -A aliases=(
|
|||||||
self="$(basename "$BASH_SOURCE")"
|
self="$(basename "$BASH_SOURCE")"
|
||||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||||
|
|
||||||
|
source '.architectures-lib'
|
||||||
|
|
||||||
versions=( */ )
|
versions=( */ )
|
||||||
versions=( "${versions[@]%/}" )
|
versions=( "${versions[@]%/}" )
|
||||||
|
|
||||||
@ -74,6 +76,7 @@ for version in "${versions[@]}"; do
|
|||||||
echo
|
echo
|
||||||
cat <<-EOE
|
cat <<-EOE
|
||||||
Tags: $(join ', ' "${versionAliases[@]}")
|
Tags: $(join ', ' "${versionAliases[@]}")
|
||||||
|
Architectures: $(join ', ' $(versionArches $version))
|
||||||
GitCommit: $commit
|
GitCommit: $commit
|
||||||
Directory: $version
|
Directory: $version
|
||||||
EOE
|
EOE
|
||||||
|
52
update.sh
52
update.sh
@ -11,6 +11,27 @@ declare -A xtrabackups=(
|
|||||||
[5.5]='percona-xtrabackup'
|
[5.5]='percona-xtrabackup'
|
||||||
[10.0]='percona-xtrabackup'
|
[10.0]='percona-xtrabackup'
|
||||||
)
|
)
|
||||||
|
declare -A dpkArchToBashbrew=(
|
||||||
|
[amd64]='amd64'
|
||||||
|
[armel]='arm32v5'
|
||||||
|
[armhf]='arm32v7'
|
||||||
|
[arm64]='arm64v8'
|
||||||
|
[i386]='i386'
|
||||||
|
[ppc64el]='ppc64le'
|
||||||
|
[s390x]='s390x'
|
||||||
|
)
|
||||||
|
|
||||||
|
getRemoteVersion() {
|
||||||
|
local version="$1"; shift # 10.3
|
||||||
|
local suite="$1"; shift # bionic
|
||||||
|
local dpkgArch="$1" shift # arm64
|
||||||
|
|
||||||
|
echo "$(
|
||||||
|
curl -fsSL "http://ftp.osuosl.org/pub/mariadb/repo/$version/ubuntu/dists/$suite/main/binary-$dpkgArch/Packages" 2>/dev/null \
|
||||||
|
| tac|tac \
|
||||||
|
| awk -F ': ' '$1 == "Package" { pkg = $2; next } $1 == "Version" && pkg == "mariadb-server" { print $2; exit }'
|
||||||
|
)"
|
||||||
|
}
|
||||||
|
|
||||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||||
|
|
||||||
@ -23,31 +44,42 @@ versions=( "${versions[@]%/}" )
|
|||||||
travisEnv=
|
travisEnv=
|
||||||
for version in "${versions[@]}"; do
|
for version in "${versions[@]}"; do
|
||||||
suite="${suites[$version]:-$defaultSuite}"
|
suite="${suites[$version]:-$defaultSuite}"
|
||||||
fullVersion="$(
|
fullVersion="$(getRemoteVersion "$version" "$suite" 'amd64')"
|
||||||
curl -fsSL "http://ftp.osuosl.org/pub/mariadb/repo/$version/ubuntu/dists/$suite/main/binary-amd64/Packages" \
|
|
||||||
| tac|tac \
|
|
||||||
| awk -F ': ' '$1 == "Package" { pkg = $2; next } $1 == "Version" && pkg == "mariadb-server" { print $2; exit }'
|
|
||||||
)"
|
|
||||||
if [ -z "$fullVersion" ]; then
|
if [ -z "$fullVersion" ]; then
|
||||||
echo >&2 "warning: cannot find $version in $suite"
|
echo >&2 "warning: cannot find $version in $suite"
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo '# bashbrew-arches' > "$version/release-architectures"
|
||||||
|
for arch in "${!dpkArchToBashbrew[@]}"; do
|
||||||
|
if ver="$(getRemoteVersion "$version" "$suite" "$arch")" && [ -n "$ver" ]; then
|
||||||
|
echo "${dpkArchToBashbrew[$arch]}" >> "$version/release-architectures"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
backup="${xtrabackups[$version]:-$defaultXtrabackup}"
|
backup="${xtrabackups[$version]:-$defaultXtrabackup}"
|
||||||
# 10.1 and 10.2 have mariadb major version in the package name
|
|
||||||
if [ "$backup" == 'mariadb-backup' ] && [[ "$version" < 10.3 ]]; then
|
cp Dockerfile.template "$version/Dockerfile"
|
||||||
|
if [ "$backup" == 'percona-xtrabackup' ]; then
|
||||||
|
gawk -i inplace '
|
||||||
|
{ print }
|
||||||
|
/%%XTRABACKUP%%/ && c == 0 { c = 1; system("cat Dockerfile-percona-block") }
|
||||||
|
' "$version/Dockerfile"
|
||||||
|
elif [ "$backup" == 'mariadb-backup' ] && [[ "$version" < 10.3 ]]; then
|
||||||
|
# 10.1 and 10.2 have mariadb major version in the package name
|
||||||
backup="$backup-$version"
|
backup="$backup-$version"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
(
|
(
|
||||||
set -x
|
set -x
|
||||||
cp docker-entrypoint.sh "$version/"
|
cp docker-entrypoint.sh "$version/"
|
||||||
sed \
|
sed -i \
|
||||||
-e 's!%%MARIADB_VERSION%%!'"$fullVersion"'!g' \
|
-e 's!%%MARIADB_VERSION%%!'"$fullVersion"'!g' \
|
||||||
-e 's!%%MARIADB_MAJOR%%!'"$version"'!g' \
|
-e 's!%%MARIADB_MAJOR%%!'"$version"'!g' \
|
||||||
-e 's!%%SUITE%%!'"$suite"'!g' \
|
-e 's!%%SUITE%%!'"$suite"'!g' \
|
||||||
-e 's!%%XTRABACKUP%%!'"$backup"'!g' \
|
-e 's!%%XTRABACKUP%%!'"$backup"'!g' \
|
||||||
Dockerfile.template \
|
"$version/Dockerfile"
|
||||||
> "$version/Dockerfile"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
travisEnv='\n - VERSION='"$version$travisEnv"
|
travisEnv='\n - VERSION='"$version$travisEnv"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user