Skip to content

Commit 328e7b4

Browse files
committed
Rebase to Alpine
2 parents 3178f88 + 92ce22a commit 328e7b4

File tree

15 files changed

+245
-394
lines changed

15 files changed

+245
-394
lines changed

.github/ISSUE_TEMPLATE/issue.bug.md

100755100644
File mode changed.

.github/workflows/external_trigger.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ jobs:
1818
fi
1919
echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_MARIADB_MASTER\". ****"
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=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
22+
&& awk '/^P:'"mariadb"'$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://')
2223
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
2324
echo "**** Can't retrieve external version, exiting ****"
2425
FAILURE_REASON="Can't retrieve external version for mariadb branch master"

Dockerfile

Lines changed: 26 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,42 @@
1-
FROM ghcr.io/linuxserver/baseimage-ubuntu:bionic
1+
FROM ghcr.io/linuxserver/baseimage-alpine:3.14
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 && \
27-
echo "**** install runtime packages ****" && \
28-
if [ -z ${MARIADB_VERSION+x} ]; then \
29-
MARIADB="mariadb-server"; \
30-
else \
31-
MARIADB="mariadb-server=${MARIADB_VERSION}"; \
32-
fi && \
33-
apt-get update && \
34-
apt-get install -y \
35-
${MARIADB} && \
36-
echo "**** cleanup ****" && \
37-
rm -rf \
38-
/tmp/* \
39-
/var/lib/apt/lists/* \
40-
/var/lib/mysql \
41-
/var/tmp/* && \
42-
mkdir -p \
43-
/var/lib/mysql
15+
echo "**** install build packages ****" && \
16+
apk add --no-cache --virtual=build-dependencies \
17+
curl && \
18+
echo "**** install runtime packages ****" && \
19+
if [ -z ${MARIADB_VERSION+x} ]; then \
20+
MARIADB_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
21+
&& awk '/^P:mariadb$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \
22+
fi && \
23+
apk add --no-cache \
24+
gnupg \
25+
mariadb==${MARIADB_VERSION} \
26+
mariadb-backup==${MARIADB_VERSION} \
27+
mariadb-client==${MARIADB_VERSION} \
28+
mariadb-common==${MARIADB_VERSION} \
29+
mariadb-server-utils==${MARIADB_VERSION} && \
30+
echo "**** cleanup ****" && \
31+
apk del --purge \
32+
build-dependencies && \
33+
rm -rf \
34+
/root/.cache \
35+
/tmp/* && \
36+
mkdir -p \
37+
/var/lib/mysql
4438

45-
# add local files
39+
# copy local files
4640
COPY root/ /
4741

4842
# ports and volumes

Dockerfile.aarch64

Lines changed: 26 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,42 @@
1-
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-bionic
1+
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.14
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 && \
27-
echo "**** install runtime packages ****" && \
28-
if [ -z ${MARIADB_VERSION+x} ]; then \
29-
MARIADB="mariadb-server"; \
30-
else \
31-
MARIADB="mariadb-server=${MARIADB_VERSION}"; \
32-
fi && \
33-
apt-get update && \
34-
apt-get install -y \
35-
${MARIADB} && \
36-
echo "**** cleanup ****" && \
37-
rm -rf \
38-
/tmp/* \
39-
/var/lib/apt/lists/* \
40-
/var/lib/mysql \
41-
/var/tmp/* && \
42-
mkdir -p \
43-
/var/lib/mysql
15+
echo "**** install build packages ****" && \
16+
apk add --no-cache --virtual=build-dependencies \
17+
curl && \
18+
echo "**** install runtime packages ****" && \
19+
if [ -z ${MARIADB_VERSION+x} ]; then \
20+
MARIADB_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
21+
&& awk '/^P:mariadb$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \
22+
fi && \
23+
apk add --no-cache \
24+
gnupg \
25+
mariadb==${MARIADB_VERSION} \
26+
mariadb-backup==${MARIADB_VERSION} \
27+
mariadb-client==${MARIADB_VERSION} \
28+
mariadb-common==${MARIADB_VERSION} \
29+
mariadb-server-utils==${MARIADB_VERSION} && \
30+
echo "**** cleanup ****" && \
31+
apk del --purge \
32+
build-dependencies && \
33+
rm -rf \
34+
/root/.cache \
35+
/tmp/* && \
36+
mkdir -p \
37+
/var/lib/mysql
4438

45-
# add local files
39+
# copy local files
4640
COPY root/ /
4741

4842
# ports and volumes

Dockerfile.armhf

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,42 @@
1-
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm32v7-bionic
1+
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.14
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 && \
27-
echo "**** install runtime packages ****" && \
28-
apt-get update && \
29-
apt-get install -y \
30-
mariadb-server && \
31-
echo "**** cleanup ****" && \
32-
rm -rf \
33-
/tmp/* \
34-
/var/lib/apt/lists/* \
35-
/var/lib/mysql \
36-
/var/tmp/* && \
37-
mkdir -p \
38-
/var/lib/mysql
15+
echo "**** install build packages ****" && \
16+
apk add --no-cache --virtual=build-dependencies \
17+
curl && \
18+
echo "**** install runtime packages ****" && \
19+
if [ -z ${MARIADB_VERSION+x} ]; then \
20+
MARIADB_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
21+
&& awk '/^P:mariadb$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \
22+
fi && \
23+
apk add --no-cache \
24+
gnupg \
25+
mariadb==${MARIADB_VERSION} \
26+
mariadb-backup==${MARIADB_VERSION} \
27+
mariadb-client==${MARIADB_VERSION} \
28+
mariadb-common==${MARIADB_VERSION} \
29+
mariadb-server-utils==${MARIADB_VERSION} && \
30+
echo "**** cleanup ****" && \
31+
apk del --purge \
32+
build-dependencies && \
33+
rm -rf \
34+
/root/.cache \
35+
/tmp/* && \
36+
mkdir -p \
37+
/var/lib/mysql
3938

40-
# add local files
39+
# copy local files
4140
COPY root/ /
4241

4342
# ports and volumes

Jenkinsfile

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@ pipeline {
2323
DOCKERHUB_IMAGE = 'linuxserver/mariadb'
2424
DEV_DOCKERHUB_IMAGE = 'lsiodev/mariadb'
2525
PR_DOCKERHUB_IMAGE = 'lspipepr/mariadb'
26-
DIST_IMAGE = 'ubuntu'
26+
DIST_IMAGE = 'alpine'
27+
DIST_TAG = '3.14'
28+
DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/v3.14/main/'
29+
DIST_REPO_PACKAGES = 'mariadb'
2730
MULTIARCH='true'
2831
CI='true'
2932
CI_WEB='false'
@@ -98,14 +101,15 @@ pipeline {
98101
/* ########################
99102
External Release Tagging
100103
######################## */
101-
// If this is a custom command to determine version use that command
102-
stage("Set tag custom bash"){
104+
// If this is an alpine repo change for external version determine an md5 from the version string
105+
stage("Set tag Alpine Repo"){
103106
steps{
104107
script{
105108
env.EXT_RELEASE = sh(
106-
script: ''' 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}' ''',
109+
script: '''curl -sL "${DIST_REPO}x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
110+
&& awk '/^P:'"${DIST_REPO_PACKAGES}"'$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://' ''',
107111
returnStdout: true).trim()
108-
env.RELEASE_LINK = 'custom_command'
112+
env.RELEASE_LINK = 'alpine_repo'
109113
}
110114
}
111115
}
@@ -798,11 +802,11 @@ pipeline {
798802
"tagger": {"name": "LinuxServer Jenkins","email": "[email protected]","date": "'${GITHUB_DATE}'"}}' '''
799803
echo "Pushing New release for Tag"
800804
sh '''#! /bin/bash
801-
echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json
805+
echo "Updating external repo packages to ${EXT_RELEASE_CLEAN}" > releasebody.json
802806
echo '{"tag_name":"'${META_TAG}'",\
803807
"target_commitish": "master",\
804808
"name": "'${META_TAG}'",\
805-
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start
809+
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Repo Changes:**\\n\\n' > start
806810
printf '","draft": false,"prerelease": false}' >> releasebody.json
807811
paste -d'\\0' start releasebody.json > releasebody.json.done
808812
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''

README.md

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,6 @@ The architectures supported by this image are:
5656
| arm64 | arm64v8-latest |
5757
| armhf | arm32v7-latest |
5858

59-
## Version Tags
60-
61-
This image provides various versions that are available via tags. `latest` tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them.
62-
63-
| Tag | Description |
64-
| :----: | --- |
65-
| latest | Currently using Ubuntu base images. Will be moved to the Alpine base in the near future. |
66-
| alpine | Releases with an Alpine base. |
67-
6859
## Application Setup
6960

7061
If you didn't set a password during installation, (see logs for warning) use
@@ -283,6 +274,10 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
283274

284275
## Versions
285276

277+
* **06.07.21:** - Rebase master to alpine.
278+
* **03.07.21:** - Rebase to 3.14.
279+
* **08.02.21:** - Fix new installs.
280+
* **08.02.21:** - Rebase to alpine. Add mariadb-backup.
286281
* **08.02.21:** - Release alpine tag. The alpine release will replace the latest tag in the near future.
287282
* **27.10.19:** - Bump to 10.4, ability use custom sql on initial init ,defining root passwords via file.
288283
* **23.03.19:** - Switching to new Base images, shift to arm32v7 tag.

jenkins-vars.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
# jenkins variables
44
project_name: docker-mariadb
5-
external_type: na
6-
custom_version_command: "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}'"
5+
external_type: alpine_repo
76
release_type: stable
87
release_tag: latest
98
ls_branch: master
@@ -15,7 +14,10 @@ repo_vars:
1514
- DOCKERHUB_IMAGE = 'linuxserver/mariadb'
1615
- DEV_DOCKERHUB_IMAGE = 'lsiodev/mariadb'
1716
- PR_DOCKERHUB_IMAGE = 'lspipepr/mariadb'
18-
- DIST_IMAGE = 'ubuntu'
17+
- DIST_IMAGE = 'alpine'
18+
- DIST_TAG = '3.14'
19+
- DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/v3.14/main/'
20+
- DIST_REPO_PACKAGES = 'mariadb'
1921
- MULTIARCH='true'
2022
- CI='true'
2123
- CI_WEB='false'

0 commit comments

Comments
 (0)