Skip to content

Commit 16e9b46

Browse files
authored
Merge pull request #72 from linuxserver/alpine-tag
Rebase to alpine. Add mariadb-backup.
2 parents bf39d8d + a0c363a commit 16e9b46

File tree

14 files changed

+231
-226
lines changed

14 files changed

+231
-226
lines changed

.github/ISSUE_TEMPLATE/issue.bug.md

100755100644
File mode changed.

.github/workflows/external_trigger.yml

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,25 @@ on:
44
workflow_dispatch:
55

66
jobs:
7-
external-trigger-master:
7+
external-trigger-alpine:
88
runs-on: ubuntu-latest
99
steps:
1010
- uses: actions/[email protected]
1111

1212
- name: External Trigger
13-
if: github.ref == 'refs/heads/master'
13+
if: github.ref == 'refs/heads/alpine'
1414
run: |
15-
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_MARIADB_MASTER }}" ]; then
16-
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_MARIADB_MASTER is set; skipping trigger. ****"
15+
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_MARIADB_ALPINE }}" ]; then
16+
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_MARIADB_ALPINE is set; skipping trigger. ****"
1717
exit 0
1818
fi
19-
echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_MARIADB_MASTER\". ****"
19+
echo "**** External trigger running off of alpine branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_MARIADB_ALPINE\". ****"
2020
echo "**** Retrieving external version ****"
21-
EXT_RELEASE=$(curl -sX GET http://mirror.rackspace.com/mariadb/repo/10.4/ubuntu/dists/bionic/main/binary-amd64/Packages |grep -A 7 -m 1 'Package: mariadb-server' | awk -F ': ' '/Version/{print $2;exit}')
21+
EXT_RELEASE=$(docker run --rm alpine:3.13 sh -c 'apk update --quiet --repository '"http://dl-cdn.alpinelinux.org/alpine/v3.13/main/"'\
22+
&& apk info --repository '"http://dl-cdn.alpinelinux.org/alpine/v3.13/main/"' '"mariadb"' | md5sum | cut -c1-8')
2223
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
2324
echo "**** Can't retrieve external version, exiting ****"
24-
FAILURE_REASON="Can't retrieve external version for mariadb branch master"
25+
FAILURE_REASON="Can't retrieve external version for mariadb branch alpine"
2526
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-mariadb/actions/runs/${{ github.run_id }}"
2627
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
2728
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n**Trigger URL:** '"${GHA_TRIGGER_URL}"' \n"}],
@@ -32,7 +33,7 @@ jobs:
3233
echo "**** External version: ${EXT_RELEASE} ****"
3334
echo "**** Retrieving last pushed version ****"
3435
image="linuxserver/mariadb"
35-
tag="latest"
36+
tag="alpine"
3637
token=$(curl -sX GET \
3738
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fmariadb%3Apull" \
3839
| jq -r '.token')
@@ -54,7 +55,7 @@ jobs:
5455
IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}')
5556
if [ -z "${IMAGE_VERSION}" ]; then
5657
echo "**** Can't retrieve last pushed version, exiting ****"
57-
FAILURE_REASON="Can't retrieve last pushed version for mariadb tag latest"
58+
FAILURE_REASON="Can't retrieve last pushed version for mariadb tag alpine"
5859
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
5960
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
6061
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
@@ -64,13 +65,13 @@ jobs:
6465
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
6566
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
6667
exit 0
67-
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-mariadb/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
68+
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-mariadb/job/alpine/lastBuild/api/json | jq -r '.building') == "true" ]; then
6869
echo "**** New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting ****"
6970
exit 0
7071
else
7172
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****"
7273
response=$(curl -iX POST \
73-
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-mariadb/job/master/buildWithParameters?PACKAGE_CHECK=false \
74+
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-mariadb/job/alpine/buildWithParameters?PACKAGE_CHECK=false \
7475
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
7576
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
7677
echo "**** Sleeping 10 seconds until job starts ****"
@@ -85,7 +86,7 @@ jobs:
8586
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
8687
--data-urlencode "Submit=Submit"
8788
echo "**** Notifying Discord ****"
88-
TRIGGER_REASON="A version change was detected for mariadb tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
89+
TRIGGER_REASON="A version change was detected for mariadb tag alpine. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
8990
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
9091
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
9192
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}

.github/workflows/package_trigger.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,25 @@ on:
44
workflow_dispatch:
55

66
jobs:
7-
package-trigger-master:
7+
package-trigger-alpine:
88
runs-on: ubuntu-latest
99
steps:
1010
- uses: actions/[email protected]
1111

1212
- name: Package Trigger
13-
if: github.ref == 'refs/heads/master'
13+
if: github.ref == 'refs/heads/alpine'
1414
run: |
15-
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_MARIADB_MASTER }}" ]; then
16-
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_MARIADB_MASTER is set; skipping trigger. ****"
15+
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_MARIADB_ALPINE }}" ]; then
16+
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_MARIADB_ALPINE is set; skipping trigger. ****"
1717
exit 0
1818
fi
19-
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-mariadb/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
19+
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-mariadb/job/alpine/lastBuild/api/json | jq -r '.building') == "true" ]; then
2020
echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****"
2121
exit 0
2222
fi
23-
echo "**** Package trigger running off of master branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_MARIADB_MASTER\". ****"
23+
echo "**** Package trigger running off of alpine branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_MARIADB_ALPINE\". ****"
2424
response=$(curl -iX POST \
25-
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-mariadb/job/master/buildWithParameters?PACKAGE_CHECK=true \
25+
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-mariadb/job/alpine/buildWithParameters?PACKAGE_CHECK=true \
2626
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
2727
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
2828
echo "**** Sleeping 10 seconds until job starts ****"

Dockerfile

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,45 @@
1-
FROM ghcr.io/linuxserver/baseimage-ubuntu:bionic
1+
FROM ghcr.io/linuxserver/baseimage-alpine:3.13
22

33
# set version label
44
ARG BUILD_DATE
55
ARG VERSION
66
ARG MARIADB_VERSION
77
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
8-
LABEL maintainer="thelamer"
8+
LABEL maintainer="thelamer,nemchik"
99

1010
# environment variables
11-
ARG DEBIAN_FRONTEND="noninteractive"
1211
ENV MYSQL_DIR="/config"
1312
ENV DATADIR=$MYSQL_DIR/databases
1413

1514
RUN \
16-
echo "**** install gnupg ****" && \
17-
apt-get update && \
18-
apt-get install -y \
19-
gnupg && \
20-
echo "add mariadb repository ****" && \
21-
echo "(redundant on armhf platform, but added for consistent dockerfile on all platforms) ****" && \
22-
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 && \
23-
echo "deb http://mirror.rackspace.com/mariadb/repo/10.4/ubuntu bionic main" >> \
24-
/etc/apt/sources.list.d/mariadb.list && \
25-
echo "deb-src http://mirror.rackspace.com/mariadb/repo/10.4/ubuntu bionic main" >> \
26-
/etc/apt/sources.list.d/mariadb.list && \
15+
echo "**** install build packages ****" && \
16+
apk add --no-cache --virtual=build-dependencies \
17+
curl && \
18+
echo "**** temporarily forcing MARIADB_VERSION ****" && \
19+
MARIADB_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
20+
&& awk '/^P:mariadb$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \
2721
echo "**** install runtime packages ****" && \
2822
if [ -z ${MARIADB_VERSION+x} ]; then \
29-
MARIADB="mariadb-server"; \
30-
else \
31-
MARIADB="mariadb-server=${MARIADB_VERSION}"; \
23+
MARIADB_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
24+
&& awk '/^P:mariadb$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \
3225
fi && \
33-
apt-get update && \
34-
apt-get install -y \
35-
${MARIADB} && \
26+
apk add --no-cache \
27+
gnupg \
28+
mariadb==${MARIADB_VERSION} \
29+
mariadb-backup==${MARIADB_VERSION} \
30+
mariadb-client==${MARIADB_VERSION} \
31+
mariadb-common==${MARIADB_VERSION} \
32+
mariadb-server-utils==${MARIADB_VERSION} && \
3633
echo "**** cleanup ****" && \
34+
apk del --purge \
35+
build-dependencies && \
3736
rm -rf \
38-
/tmp/* \
39-
/var/lib/apt/lists/* \
40-
/var/lib/mysql \
41-
/var/tmp/* && \
37+
/root/.cache \
38+
/tmp/* && \
4239
mkdir -p \
4340
/var/lib/mysql
4441

45-
# add local files
42+
# copy local files
4643
COPY root/ /
4744

4845
# ports and volumes

Dockerfile.aarch64

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,45 @@
1-
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-bionic
1+
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.13
22

33
# set version label
44
ARG BUILD_DATE
55
ARG VERSION
66
ARG MARIADB_VERSION
77
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
8-
LABEL maintainer="thelamer"
8+
LABEL maintainer="thelamer,nemchik"
99

1010
# environment variables
11-
ARG DEBIAN_FRONTEND="noninteractive"
1211
ENV MYSQL_DIR="/config"
1312
ENV DATADIR=$MYSQL_DIR/databases
1413

1514
RUN \
16-
echo "**** install gnupg ****" && \
17-
apt-get update && \
18-
apt-get install -y \
19-
gnupg && \
20-
echo "add mariadb repository ****" && \
21-
echo "(redundant on armhf platform, but added for consistent dockerfile on all platforms) ****" && \
22-
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 && \
23-
echo "deb http://mirror.rackspace.com/mariadb/repo/10.4/ubuntu bionic main" >> \
24-
/etc/apt/sources.list.d/mariadb.list && \
25-
echo "deb-src http://mirror.rackspace.com/mariadb/repo/10.4/ubuntu bionic main" >> \
26-
/etc/apt/sources.list.d/mariadb.list && \
15+
echo "**** install build packages ****" && \
16+
apk add --no-cache --virtual=build-dependencies \
17+
curl && \
18+
echo "**** temporarily forcing MARIADB_VERSION ****" && \
19+
MARIADB_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
20+
&& awk '/^P:mariadb$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \
2721
echo "**** install runtime packages ****" && \
2822
if [ -z ${MARIADB_VERSION+x} ]; then \
29-
MARIADB="mariadb-server"; \
30-
else \
31-
MARIADB="mariadb-server=${MARIADB_VERSION}"; \
23+
MARIADB_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
24+
&& awk '/^P:mariadb$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \
3225
fi && \
33-
apt-get update && \
34-
apt-get install -y \
35-
${MARIADB} && \
26+
apk add --no-cache \
27+
gnupg \
28+
mariadb==${MARIADB_VERSION} \
29+
mariadb-backup==${MARIADB_VERSION} \
30+
mariadb-client==${MARIADB_VERSION} \
31+
mariadb-common==${MARIADB_VERSION} \
32+
mariadb-server-utils==${MARIADB_VERSION} && \
3633
echo "**** cleanup ****" && \
34+
apk del --purge \
35+
build-dependencies && \
3736
rm -rf \
38-
/tmp/* \
39-
/var/lib/apt/lists/* \
40-
/var/lib/mysql \
41-
/var/tmp/* && \
37+
/root/.cache \
38+
/tmp/* && \
4239
mkdir -p \
4340
/var/lib/mysql
4441

45-
# add local files
42+
# copy local files
4643
COPY root/ /
4744

4845
# ports and volumes

Dockerfile.armhf

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,45 @@
1-
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm32v7-bionic
1+
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.13
22

33
# set version label
44
ARG BUILD_DATE
55
ARG VERSION
66
ARG MARIADB_VERSION
77
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
8-
LABEL maintainer="thelamer"
8+
LABEL maintainer="thelamer,nemchik"
99

1010
# environment variables
11-
ARG DEBIAN_FRONTEND="noninteractive"
1211
ENV MYSQL_DIR="/config"
1312
ENV DATADIR=$MYSQL_DIR/databases
1413

1514
RUN \
16-
echo "**** install gnupg ****" && \
17-
apt-get update && \
18-
apt-get install -y \
19-
gnupg && \
20-
echo "add mariadb repository ****" && \
21-
echo "(redundant on armhf platform, but added for consistent dockerfile on all platforms) ****" && \
22-
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 && \
23-
echo "deb http://mirror.rackspace.com/mariadb/repo/10.4/ubuntu bionic main" >> \
24-
/etc/apt/sources.list.d/mariadb.list && \
25-
echo "deb-src http://mirror.rackspace.com/mariadb/repo/10.4/ubuntu bionic main" >> \
26-
/etc/apt/sources.list.d/mariadb.list && \
15+
echo "**** install build packages ****" && \
16+
apk add --no-cache --virtual=build-dependencies \
17+
curl && \
18+
echo "**** temporarily forcing MARIADB_VERSION ****" && \
19+
MARIADB_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
20+
&& awk '/^P:mariadb$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \
2721
echo "**** install runtime packages ****" && \
28-
apt-get update && \
29-
apt-get install -y \
30-
mariadb-server && \
22+
if [ -z ${MARIADB_VERSION+x} ]; then \
23+
MARIADB_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
24+
&& awk '/^P:mariadb$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \
25+
fi && \
26+
apk add --no-cache \
27+
gnupg \
28+
mariadb==${MARIADB_VERSION} \
29+
mariadb-backup==${MARIADB_VERSION} \
30+
mariadb-client==${MARIADB_VERSION} \
31+
mariadb-common==${MARIADB_VERSION} \
32+
mariadb-server-utils==${MARIADB_VERSION} && \
3133
echo "**** cleanup ****" && \
34+
apk del --purge \
35+
build-dependencies && \
3236
rm -rf \
33-
/tmp/* \
34-
/var/lib/apt/lists/* \
35-
/var/lib/mysql \
36-
/var/tmp/* && \
37+
/root/.cache \
38+
/tmp/* && \
3739
mkdir -p \
3840
/var/lib/mysql
3941

40-
# add local files
42+
# copy local files
4143
COPY root/ /
4244

4345
# ports and volumes

0 commit comments

Comments
 (0)