mirror of
https://github.com/linuxserver/docker-snipe-it.git
synced 2026-02-05 11:27:42 +08:00
adding initial multi-arch support to the image
This commit is contained in:
parent
91260e6766
commit
bb3eacf037
72
Dockerfile.aarch64
Normal file
72
Dockerfile.aarch64
Normal file
@ -0,0 +1,72 @@
|
||||
FROM lsiobase/alpine.nginx.arm64:3.7
|
||||
# Add qemu to build on x86_64 systems
|
||||
COPY qemu-aarch64-static /usr/bin
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
ARG VERSION
|
||||
ARG SNIPEIT_RELEASE
|
||||
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
|
||||
LABEL maintainer="TheLamer, sparkyballs"
|
||||
|
||||
RUN \
|
||||
echo "**** install runtime packages ****" && \
|
||||
apk add --no-cache \
|
||||
curl \
|
||||
libxml2 \
|
||||
php7-bcmath \
|
||||
php7-ctype \
|
||||
php7-curl \
|
||||
php7-gd \
|
||||
php7-ldap \
|
||||
php7-mbstring \
|
||||
php7-mcrypt \
|
||||
php7-phar \
|
||||
php7-pdo_mysql \
|
||||
php7-pdo_sqlite \
|
||||
php7-sqlite3 \
|
||||
php7-tokenizer \
|
||||
php7-xml \
|
||||
php7-xmlreader \
|
||||
php7-zip \
|
||||
tar \
|
||||
unzip && \
|
||||
echo "**** configure php-fpm to pass env vars ****" && \
|
||||
sed -i \
|
||||
's/;clear_env = no/clear_env = no/g' \
|
||||
/etc/php7/php-fpm.d/www.conf && \
|
||||
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php7/php-fpm.conf && \
|
||||
echo "**** install snipe-it ****" && \
|
||||
mkdir -p \
|
||||
/var/www/html/ && \
|
||||
if [ -z ${SNIPEIT_RELEASE+x} ]; then \
|
||||
SNIPEIT_RELEASE=$(curl -sX GET "https://api.github.com/repos/snipe/snipe-it/releases/latest" \
|
||||
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
|
||||
fi && \
|
||||
curl -o \
|
||||
/tmp/snipeit.tar.gz -L \
|
||||
"https://github.com/snipe/snipe-it/archive/${SNIPEIT_RELEASE}.tar.gz" && \
|
||||
tar xf \
|
||||
/tmp/snipeit.tar.gz -C \
|
||||
/var/www/html/ --strip-components=1 && \
|
||||
cp /var/www/html/docker/docker.env /var/www/html/.env && \
|
||||
echo "**** move storage directories to defaults ****" && \
|
||||
mv \
|
||||
"/var/www/html/storage" \
|
||||
"/var/www/html/public/uploads" \
|
||||
/defaults/ && \
|
||||
echo "**** install dependencies ****" && \
|
||||
cd /tmp && \
|
||||
curl -sS https://getcomposer.org/installer | php && \
|
||||
mv /tmp/composer.phar /usr/local/bin/composer && \
|
||||
composer install -d /var/www/html && \
|
||||
echo "**** cleanup ****" && \
|
||||
rm -rf \
|
||||
/root/.composer \
|
||||
/tmp/*
|
||||
|
||||
# copy local files
|
||||
COPY root/ /
|
||||
|
||||
# ports and volumes
|
||||
EXPOSE 80 443
|
||||
VOLUME ["/config"]
|
||||
72
Dockerfile.armhf
Normal file
72
Dockerfile.armhf
Normal file
@ -0,0 +1,72 @@
|
||||
FROM lsiobase/alpine.nginx.armhf:3.7
|
||||
# Add qemu to build on x86_64 systems
|
||||
COPY qemu-arm-static /usr/bin
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
ARG VERSION
|
||||
ARG SNIPEIT_RELEASE
|
||||
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
|
||||
LABEL maintainer="TheLamer, sparkyballs"
|
||||
|
||||
RUN \
|
||||
echo "**** install runtime packages ****" && \
|
||||
apk add --no-cache \
|
||||
curl \
|
||||
libxml2 \
|
||||
php7-bcmath \
|
||||
php7-ctype \
|
||||
php7-curl \
|
||||
php7-gd \
|
||||
php7-ldap \
|
||||
php7-mbstring \
|
||||
php7-mcrypt \
|
||||
php7-phar \
|
||||
php7-pdo_mysql \
|
||||
php7-pdo_sqlite \
|
||||
php7-sqlite3 \
|
||||
php7-tokenizer \
|
||||
php7-xml \
|
||||
php7-xmlreader \
|
||||
php7-zip \
|
||||
tar \
|
||||
unzip && \
|
||||
echo "**** configure php-fpm to pass env vars ****" && \
|
||||
sed -i \
|
||||
's/;clear_env = no/clear_env = no/g' \
|
||||
/etc/php7/php-fpm.d/www.conf && \
|
||||
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php7/php-fpm.conf && \
|
||||
echo "**** install snipe-it ****" && \
|
||||
mkdir -p \
|
||||
/var/www/html/ && \
|
||||
if [ -z ${SNIPEIT_RELEASE+x} ]; then \
|
||||
SNIPEIT_RELEASE=$(curl -sX GET "https://api.github.com/repos/snipe/snipe-it/releases/latest" \
|
||||
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
|
||||
fi && \
|
||||
curl -o \
|
||||
/tmp/snipeit.tar.gz -L \
|
||||
"https://github.com/snipe/snipe-it/archive/${SNIPEIT_RELEASE}.tar.gz" && \
|
||||
tar xf \
|
||||
/tmp/snipeit.tar.gz -C \
|
||||
/var/www/html/ --strip-components=1 && \
|
||||
cp /var/www/html/docker/docker.env /var/www/html/.env && \
|
||||
echo "**** move storage directories to defaults ****" && \
|
||||
mv \
|
||||
"/var/www/html/storage" \
|
||||
"/var/www/html/public/uploads" \
|
||||
/defaults/ && \
|
||||
echo "**** install dependencies ****" && \
|
||||
cd /tmp && \
|
||||
curl -sS https://getcomposer.org/installer | php && \
|
||||
mv /tmp/composer.phar /usr/local/bin/composer && \
|
||||
composer install -d /var/www/html && \
|
||||
echo "**** cleanup ****" && \
|
||||
rm -rf \
|
||||
/root/.composer \
|
||||
/tmp/*
|
||||
|
||||
# copy local files
|
||||
COPY root/ /
|
||||
|
||||
# ports and volumes
|
||||
EXPOSE 80 443
|
||||
VOLUME ["/config"]
|
||||
171
Jenkinsfile
vendored
171
Jenkinsfile
vendored
@ -42,6 +42,7 @@ pipeline {
|
||||
unzip'
|
||||
DIST_REPO = 'none'
|
||||
DIST_REPO_PACKAGES = 'none'
|
||||
MULTIARCH='true'
|
||||
}
|
||||
stages {
|
||||
// Setup all the basic environment variables needed for the build
|
||||
@ -382,13 +383,37 @@ pipeline {
|
||||
Build Container
|
||||
############### */
|
||||
// Build Docker container for push to LS Repo
|
||||
stage('Build') {
|
||||
stage('Build-Single') {
|
||||
when {
|
||||
expression {
|
||||
env.MULTIARCH == 'false'
|
||||
}
|
||||
}
|
||||
steps {
|
||||
echo "Building most current release of ${EXT_REPO}"
|
||||
sh "docker build --no-cache -t ${DOCKERHUB_IMAGE}:${EXT_RELEASE}-ls${LS_TAG_NUMBER} \
|
||||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${EXT_RELEASE}-pkg-${PACKAGE_TAG}-ls${LS_TAG_NUMBER}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
||||
}
|
||||
}
|
||||
// Build MultiArch Docker container for push to LS Repo
|
||||
stage('Build-Multi') {
|
||||
when {
|
||||
expression {
|
||||
env.MULTIARCH == 'true'
|
||||
}
|
||||
}
|
||||
steps {
|
||||
echo "Building most current release of ${EXT_REPO} x86_64"
|
||||
sh "docker build --no-cache -f Dockerfile.amd64 -t ${DOCKERHUB_IMAGE}:amd64-${EXT_RELEASE}-ls${LS_TAG_NUMBER} \
|
||||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${EXT_RELEASE}-pkg-${PACKAGE_TAG}-ls${LS_TAG_NUMBER}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
||||
echo "Building most current release of ${EXT_REPO} Arm 32 Bit (Pis)"
|
||||
sh "docker build --no-cache -f Dockerfile.armhf -t ${DOCKERHUB_IMAGE}:arm32v6-${EXT_RELEASE}-ls${LS_TAG_NUMBER} \
|
||||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${EXT_RELEASE}-pkg-${PACKAGE_TAG}-ls${LS_TAG_NUMBER}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
||||
echo "Building most current release of ${EXT_REPO} Arm 64 Bit"
|
||||
sh "docker build --no-cache -f Dockerfile.aarch64 -t ${DOCKERHUB_IMAGE}:arm64v8-${EXT_RELEASE}-ls${LS_TAG_NUMBER} \
|
||||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${EXT_RELEASE}-pkg-${PACKAGE_TAG}-ls${LS_TAG_NUMBER}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
||||
}
|
||||
}
|
||||
/* #######
|
||||
Testing
|
||||
####### */
|
||||
@ -402,12 +427,15 @@ pipeline {
|
||||
Live Release Logic
|
||||
################## */
|
||||
// If this is a public release push this to the live repo triggered by an external repo update or LS repo update on master
|
||||
stage('Docker-Push-Release') {
|
||||
stage('Docker-Push-Release-Single') {
|
||||
when {
|
||||
branch "master"
|
||||
expression {
|
||||
env.LS_RELEASE != env.EXT_RELEASE + '-pkg-' + env.PACKAGE_TAG + '-ls' + env.LS_TAG_NUMBER
|
||||
}
|
||||
expression{
|
||||
env.MULTIARCH == 'false'
|
||||
}
|
||||
}
|
||||
steps {
|
||||
withCredentials([
|
||||
@ -430,6 +458,54 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
// If this is a public release push this to the live repo triggered by an external repo update or LS repo update on master
|
||||
stage('Docker-Push-Release-Multi') {
|
||||
when {
|
||||
branch "master"
|
||||
expression {
|
||||
env.LS_RELEASE != env.EXT_RELEASE + '-pkg-' + env.PACKAGE_TAG + '-ls' + env.LS_TAG_NUMBER
|
||||
}
|
||||
expression{
|
||||
env.MULTIARCH == 'true'
|
||||
}
|
||||
}
|
||||
steps {
|
||||
withCredentials([
|
||||
[
|
||||
$class: 'UsernamePasswordMultiBinding',
|
||||
credentialsId: 'c1701109-4bdc-4a9c-b3ea-480bec9a2ca6',
|
||||
usernameVariable: 'DOCKERUSER',
|
||||
passwordVariable: 'DOCKERPASS'
|
||||
]
|
||||
]) {
|
||||
echo 'Logging into DockerHub'
|
||||
sh '''#! /bin/bash
|
||||
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
|
||||
'''
|
||||
echo 'First Tag the releases to latest also'
|
||||
sh "docker tag ${DOCKERHUB_IMAGE}:amd64-${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${DOCKERHUB_IMAGE}:amd64-latest"
|
||||
sh "docker tag ${DOCKERHUB_IMAGE}:arm32v6-${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${DOCKERHUB_IMAGE}:arm32v6-latest"
|
||||
sh "docker tag ${DOCKERHUB_IMAGE}:arm64v8-${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${DOCKERHUB_IMAGE}:arm64v8-latest"
|
||||
echo 'Push all image variants in case someone does not want to use manifests'
|
||||
sh "docker push ${DOCKERHUB_IMAGE}:amd64-${EXT_RELEASE}-ls${LS_TAG_NUMBER}"
|
||||
sh "docker push ${DOCKERHUB_IMAGE}:arm32v6-${EXT_RELEASE}-ls${LS_TAG_NUMBER}"
|
||||
sh "docker push ${DOCKERHUB_IMAGE}:arm64v8-${EXT_RELEASE}-ls${LS_TAG_NUMBER}"
|
||||
sh "docker push ${DOCKERHUB_IMAGE}:amd64-latest"
|
||||
sh "docker push ${DOCKERHUB_IMAGE}:arm32v6-latest"
|
||||
sh "docker push ${DOCKERHUB_IMAGE}:arm64v8-latest"
|
||||
echo 'Generate Manifests based on tagging'
|
||||
sh "docker manifest create ${DOCKERHUB_IMAGE}:latest ${DOCKERHUB_IMAGE}:amd64-latest ${DOCKERHUB_IMAGE}:arm32v6-latest ${DOCKERHUB_IMAGE}:arm64v8-latest"
|
||||
sh "docker manifest annotate ${DOCKERHUB_IMAGE}:latest ${DOCKERHUB_IMAGE}:arm32v6-latest --os linux --arch arm"
|
||||
sh "docker manifest annotate ${DOCKERHUB_IMAGE}:latest ${DOCKERHUB_IMAGE}:arm64v8-latest --os linux --arch arm64 --variant armv8"
|
||||
sh "docker manifest create ${DOCKERHUB_IMAGE}:${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${DOCKERHUB_IMAGE}:amd64-${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${DOCKERHUB_IMAGE}:arm32v6-${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${DOCKERHUB_IMAGE}:arm64v8-${EXT_RELEASE}-ls${LS_TAG_NUMBER}"
|
||||
sh "docker manifest annotate ${DOCKERHUB_IMAGE}:${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${DOCKERHUB_IMAGE}:arm32v6-${EXT_RELEASE}-ls${LS_TAG_NUMBER} --os linux --arch arm"
|
||||
sh "docker manifest annotate ${DOCKERHUB_IMAGE}:${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${DOCKERHUB_IMAGE}:arm64v8-${EXT_RELEASE}-ls${LS_TAG_NUMBER} --os linux --arch arm64 --variant armv8"
|
||||
echo 'Pushing by manifest tags'
|
||||
sh "docker manifest push ${DOCKERHUB_IMAGE}:latest"
|
||||
sh "docker manifest push ${DOCKERHUB_IMAGE}:${EXT_RELEASE}-ls${LS_TAG_NUMBER}"
|
||||
}
|
||||
}
|
||||
}
|
||||
// If this is a public release tag it in the LS Github and push a changelog from external repo and our internal one
|
||||
stage('Github-Tag-Push-Release') {
|
||||
when {
|
||||
@ -564,12 +640,15 @@ pipeline {
|
||||
Dev Release Logic
|
||||
################# */
|
||||
// Push to the Dev user dockerhub endpoint when this is a non master branch
|
||||
stage('Docker-Push-Dev') {
|
||||
stage('Docker-Push-Dev-Single') {
|
||||
when {
|
||||
not {
|
||||
branch "master"
|
||||
}
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
expression{
|
||||
env.MULTIARCH == 'false'
|
||||
}
|
||||
}
|
||||
steps {
|
||||
withCredentials([
|
||||
@ -598,6 +677,62 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
// Push to the Dev user dockerhub endpoint when this is a non master branch
|
||||
stage('Docker-Push-Dev-Multi') {
|
||||
when {
|
||||
not {
|
||||
branch "master"
|
||||
}
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
expression{
|
||||
env.MULTIARCH == 'true'
|
||||
}
|
||||
}
|
||||
steps {
|
||||
withCredentials([
|
||||
[
|
||||
$class: 'UsernamePasswordMultiBinding',
|
||||
credentialsId: 'c1701109-4bdc-4a9c-b3ea-480bec9a2ca6',
|
||||
usernameVariable: 'DOCKERUSER',
|
||||
passwordVariable: 'DOCKERPASS'
|
||||
]
|
||||
]) {
|
||||
echo 'Logging into DockerHub'
|
||||
sh '''#! /bin/bash
|
||||
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
|
||||
'''
|
||||
echo 'First Tag the releases to latest also'
|
||||
sh "docker tag ${DOCKERHUB_IMAGE}:amd64-${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${DEV_DOCKERHUB_IMAGE}:amd64-latest"
|
||||
sh "docker tag ${DOCKERHUB_IMAGE}:arm32v6-${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${DEV_DOCKERHUB_IMAGE}:arm32v6-latest"
|
||||
sh "docker tag ${DOCKERHUB_IMAGE}:arm64v8-${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${DEV_DOCKERHUB_IMAGE}:arm64v8-latest"
|
||||
sh "docker tag ${DOCKERHUB_IMAGE}:amd64-${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${DEV_DOCKERHUB_IMAGE}:amd64-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-dev-${COMMIT_SHA}"
|
||||
sh "docker tag ${DOCKERHUB_IMAGE}:arm32v6-${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${DEV_DOCKERHUB_IMAGE}:arm32v6-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-dev-${COMMIT_SHA}"
|
||||
sh "docker tag ${DOCKERHUB_IMAGE}:arm64v8-${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${DEV_DOCKERHUB_IMAGE}:arm64v8-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-dev-${COMMIT_SHA}"
|
||||
echo 'Push all image variants'
|
||||
sh "docker push ${DEV_DOCKERHUB_IMAGE}:amd64-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-dev-${COMMIT_SHA}"
|
||||
sh "docker push ${DEV_DOCKERHUB_IMAGE}:arm32v6-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-dev-${COMMIT_SHA}"
|
||||
sh "docker push ${DEV_DOCKERHUB_IMAGE}:arm64v8-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-dev-${COMMIT_SHA}"
|
||||
sh "docker push ${DEV_DOCKERHUB_IMAGE}:amd64-latest"
|
||||
sh "docker push ${DEV_DOCKERHUB_IMAGE}:arm32v6-latest"
|
||||
sh "docker push ${DEV_DOCKERHUB_IMAGE}:arm64v8-latest"
|
||||
echo 'Generate Manifests based on tagging'
|
||||
sh "docker manifest create ${DEV_DOCKERHUB_IMAGE}:latest ${DEV_DOCKERHUB_IMAGE}:amd64-latest ${DEV_DOCKERHUB_IMAGE}:arm32v6-latest ${DEV_DOCKERHUB_IMAGE}:arm64v8-latest"
|
||||
sh "docker manifest annotate ${DEV_DOCKERHUB_IMAGE}:latest ${DEV_DOCKERHUB_IMAGE}:arm32v6-latest --os linux --arch arm"
|
||||
sh "docker manifest annotate ${DEV_DOCKERHUB_IMAGE}:latest ${DEV_DOCKERHUB_IMAGE}:arm64v8-latest --os linux --arch arm64 --variant armv8"
|
||||
sh "docker manifest create ${DEV_DOCKERHUB_IMAGE}:${EXT_RELEASE}-pkg-${PACKAGE_TAG}-dev-${COMMIT_SHA} ${DEV_DOCKERHUB_IMAGE}:amd64-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-dev-${COMMIT_SHA} ${DEV_DOCKERHUB_IMAGE}:arm32v6-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-dev-${COMMIT_SHA} ${DEV_DOCKERHUB_IMAGE}:arm64v8-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-dev-${COMMIT_SHA}"
|
||||
sh "docker manifest annotate ${DEV_DOCKERHUB_IMAGE}:${EXT_RELEASE}-pkg-${PACKAGE_TAG}-dev-${COMMIT_SHA} ${DEV_DOCKERHUB_IMAGE}:arm32v6-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-dev-${COMMIT_SHA} --os linux --arch arm"
|
||||
sh "docker manifest annotate ${DEV_DOCKERHUB_IMAGE}:${EXT_RELEASE}-pkg-${PACKAGE_TAG}-dev-${COMMIT_SHA} ${DEV_DOCKERHUB_IMAGE}:arm64v8-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-dev-${COMMIT_SHA} --os linux --arch arm64 --variant armv8"
|
||||
echo 'Pushing by manifest tags'
|
||||
sh "docker manifest push ${DEV_DOCKERHUB_IMAGE}:latest"
|
||||
sh "docker manifest push ${DEV_DOCKERHUB_IMAGE}:${EXT_RELEASE}-pkg-${PACKAGE_TAG}-dev-${COMMIT_SHA}"
|
||||
}
|
||||
script{
|
||||
env.DOCKERHUB_LINK = sh(
|
||||
script: '''echo https://hub.docker.com/r/${DEV_DOCKERHUB_IMAGE}/tags/''',
|
||||
returnStdout: true).trim()
|
||||
}
|
||||
}
|
||||
}
|
||||
/* ################
|
||||
PR Release Logic
|
||||
################ */
|
||||
@ -621,12 +756,30 @@ pipeline {
|
||||
sh '''#! /bin/bash
|
||||
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
|
||||
'''
|
||||
echo 'Tag images to the built one'
|
||||
sh "docker tag ${DOCKERHUB_IMAGE}:${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${PR_DOCKERHUB_IMAGE}:latest"
|
||||
sh "docker tag ${DOCKERHUB_IMAGE}:${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${PR_DOCKERHUB_IMAGE}:${EXT_RELEASE}-pkg-${PACKAGE_TAG}-pr-${PULL_REQUEST}"
|
||||
echo 'Pushing both tags'
|
||||
sh "docker push ${PR_DOCKERHUB_IMAGE}:latest"
|
||||
sh "docker push ${PR_DOCKERHUB_IMAGE}:${EXT_RELEASE}-pkg-${PACKAGE_TAG}-pr-${PULL_REQUEST}"
|
||||
echo 'First Tag the releases to latest also'
|
||||
sh "docker tag ${DOCKERHUB_IMAGE}:amd64-${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${PR_DOCKERHUB_IMAGE}:amd64-latest"
|
||||
sh "docker tag ${DOCKERHUB_IMAGE}:arm32v6-${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${PR_DOCKERHUB_IMAGE}:arm32v6-latest"
|
||||
sh "docker tag ${DOCKERHUB_IMAGE}:arm64v8-${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${PR_DOCKERHUB_IMAGE}:arm64v8-latest"
|
||||
sh "docker tag ${DOCKERHUB_IMAGE}:amd64-${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${PR_DOCKERHUB_IMAGE}:amd64-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-pr-${PULL_REQUEST}"
|
||||
sh "docker tag ${DOCKERHUB_IMAGE}:arm32v6-${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${PR_DOCKERHUB_IMAGE}:arm32v6-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-pr-${PULL_REQUEST}"
|
||||
sh "docker tag ${DOCKERHUB_IMAGE}:arm64v8-${EXT_RELEASE}-ls${LS_TAG_NUMBER} ${PR_DOCKERHUB_IMAGE}:arm64v8-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-pr-${PULL_REQUEST}"
|
||||
echo 'Push all image variants'
|
||||
sh "docker push ${PR_DOCKERHUB_IMAGE}:amd64-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-pr-${PULL_REQUEST}"
|
||||
sh "docker push ${PR_DOCKERHUB_IMAGE}:arm32v6-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-pr-${PULL_REQUEST}"
|
||||
sh "docker push ${PR_DOCKERHUB_IMAGE}:arm64v8-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-pr-${PULL_REQUEST}"
|
||||
sh "docker push ${PR_DOCKERHUB_IMAGE}:amd64-latest"
|
||||
sh "docker push ${PR_DOCKERHUB_IMAGE}:arm32v6-latest"
|
||||
sh "docker push ${PR_DOCKERHUB_IMAGE}:arm64v8-latest"
|
||||
echo 'Generate Manifests based on tagging'
|
||||
sh "docker manifest create ${PR_DOCKERHUB_IMAGE}:latest ${PR_DOCKERHUB_IMAGE}:amd64-latest ${PR_DOCKERHUB_IMAGE}:arm32v6-latest ${PR_DOCKERHUB_IMAGE}:arm64v8-latest"
|
||||
sh "docker manifest annotate ${PR_DOCKERHUB_IMAGE}:latest ${PR_DOCKERHUB_IMAGE}:arm32v6-latest --os linux --arch arm"
|
||||
sh "docker manifest annotate ${PR_DOCKERHUB_IMAGE}:latest ${PR_DOCKERHUB_IMAGE}:arm64v8-latest --os linux --arch arm64 --variant armv8"
|
||||
sh "docker manifest create ${PR_DOCKERHUB_IMAGE}:${EXT_RELEASE}-pkg-${PACKAGE_TAG}-pr-${PULL_REQUEST} ${PR_DOCKERHUB_IMAGE}:amd64-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-pr-${PULL_REQUEST} ${PR_DOCKERHUB_IMAGE}:arm32v6-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-pr-${PULL_REQUEST} ${PR_DOCKERHUB_IMAGE}:arm64v8-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-pr-${PULL_REQUEST}"
|
||||
sh "docker manifest annotate ${PR_DOCKERHUB_IMAGE}:${EXT_RELEASE}-pkg-${PACKAGE_TAG}-pr-${PULL_REQUEST} ${PR_DOCKERHUB_IMAGE}:arm32v6-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-pr-${PULL_REQUEST} --os linux --arch arm"
|
||||
sh "docker manifest annotate ${PR_DOCKERHUB_IMAGE}:${EXT_RELEASE}-pkg-${PACKAGE_TAG}-pr-${PULL_REQUEST} ${PR_DOCKERHUB_IMAGE}:arm64v8-${EXT_RELEASE}-pkg-${PACKAGE_TAG}-pr-${PULL_REQUEST} --os linux --arch arm64 --variant armv8"
|
||||
echo 'Pushing by manifest tags'
|
||||
sh "docker manifest push ${PR_DOCKERHUB_IMAGE}:latest"
|
||||
sh "docker manifest push ${PR_DOCKERHUB_IMAGE}:${EXT_RELEASE}-pkg-${PACKAGE_TAG}-pr-${PULL_REQUEST}"
|
||||
}
|
||||
script{
|
||||
env.CODE_URL = sh(
|
||||
|
||||
BIN
qemu-aarch64-static
Executable file
BIN
qemu-aarch64-static
Executable file
Binary file not shown.
BIN
qemu-arm-static
Executable file
BIN
qemu-arm-static
Executable file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user