From 91044234a780cf65b377c844d48cacd41b7fbdd0 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Wed, 10 May 2023 15:24:43 +0100 Subject: [PATCH 01/19] Initial release --- Dockerfile | 32 +++++-------- Dockerfile.aarch64 | 37 +++++---------- Dockerfile.armhf | 106 ----------------------------------------- Jenkinsfile | 116 +++++++++++++-------------------------------- jenkins-vars.yml | 3 +- 5 files changed, 60 insertions(+), 234 deletions(-) delete mode 100644 Dockerfile.armhf diff --git a/Dockerfile b/Dockerfile index 09c97b3b..354a6fa3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,42 +1,36 @@ # syntax=docker/dockerfile:1 -FROM alpine:3.16 as rootfs-stage +FROM alpine:3.17 as rootfs-stage # environment -ENV REL=v3.17 +ENV ROOTFS=/root-out +ENV REL=v3.18 ENV ARCH=x86_64 ENV MIRROR=http://dl-cdn.alpinelinux.org/alpine ENV PACKAGES=alpine-baselayout,\ alpine-keys,\ apk-tools,\ busybox,\ -libc-utils,\ -xz +libc-utils # install packages RUN \ apk add --no-cache \ bash \ - curl \ - tzdata \ xz -# fetch builder script from gliderlabs +# build rootfs RUN \ - curl -o \ - /mkimage-alpine.bash -L \ - https://raw.githubusercontent.com/gliderlabs/docker-alpine/master/builder/scripts/mkimage-alpine.bash && \ - chmod +x \ - /mkimage-alpine.bash && \ - ./mkimage-alpine.bash && \ - mkdir /root-out && \ - tar xf \ - /rootfs.tar.xz -C \ - /root-out && \ + mkdir -p "$ROOTFS/etc/apk" && \ + { \ + echo "$MIRROR/$REL/main"; \ + echo "$MIRROR/$REL/community"; \ + } > "$ROOTFS/etc/apk/repositories" && \ + apk --root "$ROOTFS" --no-cache --keys-dir /etc/apk/keys add --arch $ARCH --initdb ${PACKAGES//,/ } && \ sed -i -e 's/^root::/root:!:/' /root-out/etc/shadow # set version for s6 overlay -ARG S6_OVERLAY_VERSION="3.1.2.1" +ARG S6_OVERLAY_VERSION="3.1.5.0" ARG S6_OVERLAY_ARCH="x86_64" # add s6 overlay @@ -80,7 +74,7 @@ RUN \ curl \ jq \ netcat-openbsd \ - procps \ + procps-ng \ shadow \ tzdata && \ echo "**** create abc user and make our folders ****" && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 7bfd122d..f6bb1ddd 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,42 +1,36 @@ # syntax=docker/dockerfile:1 -FROM alpine:3.16 as rootfs-stage +FROM alpine:3.17 as rootfs-stage # environment -ENV REL=v3.17 +ENV ROOTFS=/root-out +ENV REL=v3.18 ENV ARCH=aarch64 ENV MIRROR=http://dl-cdn.alpinelinux.org/alpine ENV PACKAGES=alpine-baselayout,\ alpine-keys,\ apk-tools,\ busybox,\ -libc-utils,\ -xz +libc-utils # install packages RUN \ apk add --no-cache \ bash \ - curl \ - tzdata \ xz -# fetch builder script from gliderlabs +# build rootfs RUN \ - curl -o \ - /mkimage-alpine.bash -L \ - https://raw.githubusercontent.com/gliderlabs/docker-alpine/master/builder/scripts/mkimage-alpine.bash && \ - chmod +x \ - /mkimage-alpine.bash && \ - ./mkimage-alpine.bash && \ - mkdir /root-out && \ - tar xf \ - /rootfs.tar.xz -C \ - /root-out && \ + mkdir -p "$ROOTFS/etc/apk" && \ + { \ + echo "$MIRROR/$REL/main"; \ + echo "$MIRROR/$REL/community"; \ + } > "$ROOTFS/etc/apk/repositories" && \ + apk --root "$ROOTFS" --no-cache --keys-dir /etc/apk/keys add --arch $ARCH --initdb ${PACKAGES//,/ } && \ sed -i -e 's/^root::/root:!:/' /root-out/etc/shadow # set version for s6 overlay -ARG S6_OVERLAY_VERSION="3.1.2.1" +ARG S6_OVERLAY_VERSION="3.1.5.0" ARG S6_OVERLAY_ARCH="aarch64" # add s6 overlay @@ -80,7 +74,7 @@ RUN \ curl \ jq \ netcat-openbsd \ - procps \ + procps-ng \ shadow \ tzdata && \ echo "**** create abc user and make our folders ****" && \ @@ -91,11 +85,6 @@ RUN \ /app \ /config \ /defaults && \ - echo "**** add qemu ****" && \ - curl -o \ - /usr/bin/qemu-aarch64-static -L \ - "https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static" && \ - chmod +x /usr/bin/qemu-aarch64-static && \ echo "**** cleanup ****" && \ rm -rf \ /tmp/* diff --git a/Dockerfile.armhf b/Dockerfile.armhf deleted file mode 100644 index 570173cc..00000000 --- a/Dockerfile.armhf +++ /dev/null @@ -1,106 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM alpine:3.16 as rootfs-stage - -# environment -ENV REL=v3.17 -ENV ARCH=armv7 -ENV MIRROR=http://dl-cdn.alpinelinux.org/alpine -ENV PACKAGES=alpine-baselayout,\ -alpine-keys,\ -apk-tools,\ -busybox,\ -libc-utils,\ -xz - -# install packages -RUN \ - apk add --no-cache \ - bash \ - curl \ - tzdata \ - xz - -# fetch builder script from gliderlabs -RUN \ - curl -o \ - /mkimage-alpine.bash -L \ - https://raw.githubusercontent.com/gliderlabs/docker-alpine/master/builder/scripts/mkimage-alpine.bash && \ - chmod +x \ - /mkimage-alpine.bash && \ - ./mkimage-alpine.bash && \ - mkdir /root-out && \ - tar xf \ - /rootfs.tar.xz -C \ - /root-out && \ - sed -i -e 's/^root::/root:!:/' /root-out/etc/shadow - -# set version for s6 overlay -ARG S6_OVERLAY_VERSION="3.1.2.1" -ARG S6_OVERLAY_ARCH="armhf" - -# add s6 overlay -ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz /tmp -RUN tar -C /root-out -Jxpf /tmp/s6-overlay-noarch.tar.xz -ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz /tmp -RUN tar -C /root-out -Jxpf /tmp/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz - -# add s6 optional symlinks -ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz /tmp -RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz -ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp -RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz - -# Runtime stage -FROM scratch -COPY --from=rootfs-stage /root-out/ / -ARG BUILD_DATE -ARG VERSION -ARG MODS_VERSION="v3" -LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" -LABEL maintainer="TheLamer" - -ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" - -# environment variables -ENV PS1="$(whoami)@$(hostname):$(pwd)\\$ " \ -HOME="/root" \ -TERM="xterm" \ -S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ -S6_VERBOSITY=1 \ -S6_STAGE2_HOOK=/docker-mods - -RUN \ - echo "**** install runtime packages ****" && \ - apk add --no-cache \ - alpine-release \ - bash \ - ca-certificates \ - coreutils \ - curl \ - jq \ - netcat-openbsd \ - procps \ - shadow \ - tzdata && \ - echo "**** create abc user and make our folders ****" && \ - groupmod -g 1000 users && \ - useradd -u 911 -U -d /config -s /bin/false abc && \ - usermod -G users abc && \ - mkdir -p \ - /app \ - /config \ - /defaults && \ - echo "**** add qemu ****" && \ - curl -o \ - /usr/bin/qemu-arm-static -L \ - "https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static" && \ - chmod +x /usr/bin/qemu-arm-static && \ - echo "**** cleanup ****" && \ - rm -rf \ - /tmp/* - -# add local files -COPY root/ / - -ENTRYPOINT ["/init"] diff --git a/Jenkinsfile b/Jenkinsfile index 3139c3ef..961ac618 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -43,7 +43,7 @@ pipeline { script{ env.EXIT_STATUS = '' env.LS_RELEASE = sh( - script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:3.17 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', + script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:3.18 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', returnStdout: true).trim() env.LS_RELEASE_NOTES = sh( script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''', @@ -67,7 +67,7 @@ pipeline { script{ env.LS_TAG_NUMBER = sh( script: '''#! /bin/bash - tagsha=$(git rev-list -n 1 3.17-${LS_RELEASE} 2>/dev/null) + tagsha=$(git rev-list -n 1 3.18-${LS_RELEASE} 2>/dev/null) if [ "${tagsha}" == "${COMMIT_SHA}" ]; then echo ${LS_RELEASE_NUMBER} elif [ -z "${GIT_COMMIT}" ]; then @@ -156,13 +156,13 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-3.17-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-3.17-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-3.17-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + env.CI_TAGS = 'amd64-3.18-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-3.18-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER } else { - env.CI_TAGS = '3.17-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + env.CI_TAGS = '3.18-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER } env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER - env.META_TAG = '3.17-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER - env.EXT_RELEASE_TAG = '3.17-version-' + env.EXT_RELEASE_CLEAN + env.META_TAG = '3.18-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + env.EXT_RELEASE_TAG = '3.18-version-' + env.EXT_RELEASE_CLEAN } } } @@ -179,13 +179,13 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + env.CI_TAGS = 'amd64-3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA } else { - env.CI_TAGS = '3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + env.CI_TAGS = '3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA } env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA - env.META_TAG = '3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA - env.EXT_RELEASE_TAG = '3.17-version-' + env.EXT_RELEASE_CLEAN + env.META_TAG = '3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + env.EXT_RELEASE_TAG = '3.18-version-' + env.EXT_RELEASE_CLEAN env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/' } } @@ -202,13 +202,13 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + env.CI_TAGS = 'amd64-3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST } else { - env.CI_TAGS = '3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + env.CI_TAGS = '3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST } env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST - env.META_TAG = '3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST - env.EXT_RELEASE_TAG = '3.17-version-' + env.EXT_RELEASE_CLEAN + env.META_TAG = '3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + env.EXT_RELEASE_TAG = '3.18-version-' + env.EXT_RELEASE_CLEAN env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/' } @@ -484,40 +484,6 @@ pipeline { --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." } } - stage('Build ARMHF') { - agent { - label 'ARMHF' - } - steps { - echo "Running on node: ${NODE_NAME}" - echo 'Logging into Github' - sh '''#! /bin/bash - echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin - ''' - sh "docker buildx build \ - --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ - --label \"org.opencontainers.image.authors=linuxserver.io\" \ - --label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-baseimage-alpine/packages\" \ - --label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-baseimage-alpine\" \ - --label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-baseimage-alpine\" \ - --label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \ - --label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \ - --label \"org.opencontainers.image.vendor=linuxserver.io\" \ - --label \"org.opencontainers.image.licenses=GPL-3.0-only\" \ - --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ - --label \"org.opencontainers.image.title=Baseimage-alpine\" \ - --label \"org.opencontainers.image.description=baseimage-alpine image by linuxserver.io\" \ - --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} --platform=linux/arm/v7 \ - --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." - sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}" - retry(5) { - sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}" - } - sh '''docker rmi \ - ${IMAGE}:arm32v7-${META_TAG} \ - ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :''' - } - } stage('Build ARM64') { agent { label 'ARM64' @@ -654,9 +620,7 @@ pipeline { set -e docker pull ghcr.io/linuxserver/ci:latest if [ "${MULTIARCH}" == "true" ]; then - docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} - docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} fi docker run --rm \ @@ -713,12 +677,12 @@ pipeline { echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG} - docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:3.17 + docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:3.18 docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG} if [ -n "${SEMVER}" ]; then docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER} fi - docker push ${PUSHIMAGE}:3.17 + docker push ${PUSHIMAGE}:3.18 docker push ${PUSHIMAGE}:${META_TAG} docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG} if [ -n "${SEMVER}" ]; then @@ -732,7 +696,7 @@ pipeline { docker rmi \ ${DELETEIMAGE}:${META_TAG} \ ${DELETEIMAGE}:${EXT_RELEASE_TAG} \ - ${DELETEIMAGE}:3.17 || : + ${DELETEIMAGE}:3.18 || : if [ -n "${SEMVER}" ]; then docker rmi ${DELETEIMAGE}:${SEMVER} || : fi @@ -770,59 +734,48 @@ pipeline { echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin if [ "${CI}" == "false" ]; then - docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} - docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG} docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} fi for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} - docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-3.17 + docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-3.18 docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} - docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} - docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-3.17 - docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} - docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-3.17 + docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-3.18 docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} if [ -n "${SEMVER}" ]; then docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER} - docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER} docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER} fi docker push ${MANIFESTIMAGE}:amd64-${META_TAG} docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} - docker push ${MANIFESTIMAGE}:amd64-3.17 - docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG} - docker push ${MANIFESTIMAGE}:arm32v7-3.17 - docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} + docker push ${MANIFESTIMAGE}:amd64-3.18 docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG} - docker push ${MANIFESTIMAGE}:arm64v8-3.17 + docker push ${MANIFESTIMAGE}:arm64v8-3.18 docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} if [ -n "${SEMVER}" ]; then docker push ${MANIFESTIMAGE}:amd64-${SEMVER} - docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER} docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER} fi - docker manifest push --purge ${MANIFESTIMAGE}:3.17 || : - docker manifest create ${MANIFESTIMAGE}:3.17 ${MANIFESTIMAGE}:amd64-3.17 ${MANIFESTIMAGE}:arm32v7-3.17 ${MANIFESTIMAGE}:arm64v8-3.17 - docker manifest annotate ${MANIFESTIMAGE}:3.17 ${MANIFESTIMAGE}:arm32v7-3.17 --os linux --arch arm - docker manifest annotate ${MANIFESTIMAGE}:3.17 ${MANIFESTIMAGE}:arm64v8-3.17 --os linux --arch arm64 --variant v8 + docker manifest push --purge ${MANIFESTIMAGE}:3.18 || : + docker manifest create ${MANIFESTIMAGE}:3.18 ${MANIFESTIMAGE}:amd64-3.18 ${MANIFESTIMAGE}:arm64v8-3.18 + docker manifest annotate ${MANIFESTIMAGE}:3.18 ${MANIFESTIMAGE}:arm64v8-3.18 --os linux --arch arm64 --variant v8 docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || : - docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} - docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm + docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8 docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || : - docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} - docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm + docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8 if [ -n "${SEMVER}" ]; then docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || : - docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} - docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm + docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8 fi - docker manifest push --purge ${MANIFESTIMAGE}:3.17 + docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-3.18 || : + docker manifest create ${MANIFESTIMAGE}:arm32v7-3.18 ${MANIFESTIMAGE}:amd64-3.18 + docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-3.18 + docker manifest push --purge ${MANIFESTIMAGE}:3.18 docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} if [ -n "${SEMVER}" ]; then @@ -834,20 +787,15 @@ pipeline { sh '''#! /bin/bash for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do docker rmi \ - ${DELETEIMAGE}:arm32v7-${META_TAG} \ - ${DELETEIMAGE}:arm32v7-3.17 \ - ${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \ ${DELETEIMAGE}:arm64v8-${META_TAG} \ - ${DELETEIMAGE}:arm64v8-3.17 \ + ${DELETEIMAGE}:arm64v8-3.18 \ ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || : if [ -n "${SEMVER}" ]; then docker rmi \ - ${DELETEIMAGE}:arm32v7-${SEMVER} \ ${DELETEIMAGE}:arm64v8-${SEMVER} || : fi done docker rmi \ - ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \ ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || : ''' } diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 2140c58b..950463bb 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -4,8 +4,9 @@ project_name: docker-baseimage-alpine external_type: os release_type: stable -release_tag: "3.17" +release_tag: "3.18" ls_branch: master +build_armhf: false repo_vars: - BUILD_VERSION_ARG = 'OS' - LS_USER = 'linuxserver' From 76c8c4fd589969bb21851a553842c0f5491126e0 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Wed, 10 May 2023 19:52:10 +0000 Subject: [PATCH 02/19] Bot Updating Package Versions --- package_versions.txt | 82 ++++++++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 22de891f..77008bc1 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,45 +1,45 @@ NAME VERSION TYPE -alpine-baselayout 3.4.0-r0 apk -alpine-baselayout-data 3.4.0-r0 apk +alpine-baselayout 3.4.3-r1 apk +alpine-baselayout-data 3.4.3-r1 apk alpine-keys 2.4-r1 apk -alpine-release 3.17.3-r0 apk -apk-tools 2.12.10-r1 apk -bash 5.2.15-r0 apk -brotli-libs 1.0.9-r9 apk -busybox 1.35.0 binary -busybox 1.35.0-r29 apk -busybox-binsh 1.35.0-r29 apk +alpine-release 3.18.0-r0 apk +apk-tools 2.14.0-r2 apk +bash 5.2.15-r3 apk +brotli-libs 1.0.9-r14 apk +busybox 1.36.0 binary +busybox 1.36.0-r9 apk +busybox-binsh 1.36.0-r9 apk ca-certificates 20230506-r0 apk ca-certificates-bundle 20230506-r0 apk -coreutils 9.1-r0 apk -curl 8.0.1-r0 apk -jq 1.6-r2 apk -libacl 2.3.1-r1 apk -libattr 2.5.1-r2 apk -libbsd 0.11.7-r0 apk -libc-utils 0.7.2-r3 apk -libcrypto3 3.0.8-r4 apk -libcurl 8.0.1-r0 apk -libintl 0.21.1-r1 apk -libmd 1.0.4-r0 apk -libproc 3.3.17-r2 apk -libssl3 3.0.8-r4 apk -linux-pam 1.5.2-r1 apk -musl 1.2.3-r4 apk -musl-utils 1.2.3-r4 apk -ncurses-libs 6.3_p20221119-r0 apk -ncurses-terminfo-base 6.3_p20221119-r0 apk -netcat-openbsd 1.130-r4 apk -nghttp2-libs 1.51.0-r0 apk -oniguruma 6.9.8-r0 apk -procps 3.3.17-r2 apk -readline 8.2.0-r0 apk -scanelf 1.3.5-r1 apk -shadow 4.13-r0 apk -skalibs 2.12.0.1-r0 apk -ssl_client 1.35.0-r29 apk -tzdata 2023c-r0 apk -utmps-libs 0.1.2.0-r1 apk -xz 5.2.9-r0 apk -xz-libs 5.2.9-r0 apk -zlib 1.2.13-r0 apk +coreutils 9.3-r1 apk +curl 8.0.1-r2 apk +jq 1.6-r3 apk +libacl 2.3.1-r3 apk +libattr 2.5.1-r4 apk +libbsd 0.11.7-r1 apk +libc-utils 0.7.2-r5 apk +libcrypto3 3.1.0-r4 apk +libcurl 8.0.1-r2 apk +libidn2 2.3.4-r1 apk +libintl 0.21.1-r5 apk +libmd 1.0.4-r2 apk +libncursesw 6.4_p20230506-r0 apk +libproc2 4.0.3-r1 apk +libssl3 3.1.0-r4 apk +libunistring 1.1-r1 apk +linux-pam 1.5.2-r10 apk +musl 1.2.4-r0 apk +musl-utils 1.2.4-r0 apk +ncurses-terminfo-base 6.4_p20230506-r0 apk +netcat-openbsd 1.219-r1 apk +nghttp2-libs 1.52.0-r1 apk +oniguruma 6.9.8-r1 apk +procps-ng 4.0.3-r1 apk +readline 8.2.1-r1 apk +scanelf 1.3.7-r1 apk +shadow 4.13-r2 apk +skalibs 2.13.1.1-r1 apk +ssl_client 1.36.0-r9 apk +tzdata 2023c-r1 apk +utmps-libs 0.1.2.1-r1 apk +zlib 1.2.13-r1 apk From d36f2ddbf44e0c275ae1c584df15e3d0a82b4120 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Sat, 13 May 2023 13:26:39 +0000 Subject: [PATCH 03/19] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index 77008bc1..5d7b7055 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -32,7 +32,7 @@ musl 1.2.4-r0 apk musl-utils 1.2.4-r0 apk ncurses-terminfo-base 6.4_p20230506-r0 apk netcat-openbsd 1.219-r1 apk -nghttp2-libs 1.52.0-r1 apk +nghttp2-libs 1.53.0-r0 apk oniguruma 6.9.8-r1 apk procps-ng 4.0.3-r1 apk readline 8.2.1-r1 apk From 8b124808efc43fbb342954e699c3aec5f852e7ed Mon Sep 17 00:00:00 2001 From: TheSpad Date: Mon, 15 May 2023 18:12:51 +0100 Subject: [PATCH 04/19] Create lsiopy venv folder and envs --- Dockerfile | 15 +++++++++------ Dockerfile.aarch64 | 15 +++++++++------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/Dockerfile b/Dockerfile index 354a6fa3..5089a599 100644 --- a/Dockerfile +++ b/Dockerfile @@ -58,11 +58,13 @@ ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-s # environment variables ENV PS1="$(whoami)@$(hostname):$(pwd)\\$ " \ -HOME="/root" \ -TERM="xterm" \ -S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ -S6_VERBOSITY=1 \ -S6_STAGE2_HOOK=/docker-mods + HOME="/root" \ + TERM="xterm" \ + S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ + S6_VERBOSITY=1 \ + S6_STAGE2_HOOK=/docker-mods \ + VIRTUAL_ENV=/lsiopy \ + PATH="/lsiopy/bin:$PATH" RUN \ echo "**** install runtime packages ****" && \ @@ -84,7 +86,8 @@ RUN \ mkdir -p \ /app \ /config \ - /defaults && \ + /defaults \ + /lsiopy && \ echo "**** cleanup ****" && \ rm -rf \ /tmp/* diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index f6bb1ddd..191115ca 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -58,11 +58,13 @@ ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-s # environment variables ENV PS1="$(whoami)@$(hostname):$(pwd)\\$ " \ -HOME="/root" \ -TERM="xterm" \ -S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ -S6_VERBOSITY=1 \ -S6_STAGE2_HOOK=/docker-mods + HOME="/root" \ + TERM="xterm" \ + S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ + S6_VERBOSITY=1 \ + S6_STAGE2_HOOK=/docker-mods \ + VIRTUAL_ENV=/lsiopy \ + PATH="/lsiopy/bin:$PATH" RUN \ echo "**** install runtime packages ****" && \ @@ -84,7 +86,8 @@ RUN \ mkdir -p \ /app \ /config \ - /defaults && \ + /defaults \ + /lsiopy && \ echo "**** cleanup ****" && \ rm -rf \ /tmp/* From 39642821ec6d4eeadadb605e9f372a80c9ec1ab9 Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Mon, 15 May 2023 16:38:33 -0400 Subject: [PATCH 05/19] use venv in init mods package install --- .../s6-rc.d/init-mods-package-install/run | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run index 90b4b2e8..f54077e4 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run +++ b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run @@ -1,6 +1,17 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash +if [[ -f "/mod-pip-packages-to-install.list" ]]; then + IFS=' ' read -ra PIP_PACKAGES <<< "$(tr '\n' ' ' < /mod-pip-packages-to-install.list)" + if [[ ${#PIP_PACKAGES[@]} -ne 0 ]] && [[ ${PIP_PACKAGES[*]} != "" ]]; then + if [[ -f /usr/bin/apt ]]; then + echo "python3-venv" >> /mod-repo-packages-to-install.list + elif [[ -f /sbin/apk ]]; then + echo "python3" >> /mod-repo-packages-to-install.list + fi + fi +fi + if [[ -f "/mod-repo-packages-to-install.list" ]]; then IFS=' ' read -ra REPO_PACKAGES <<< "$(tr '\n' ' ' < /mod-repo-packages-to-install.list)" if [[ ${#REPO_PACKAGES[@]} -ne 0 ]] && [[ ${REPO_PACKAGES[*]} != "" ]]; then @@ -21,6 +32,10 @@ if [[ -f "/mod-pip-packages-to-install.list" ]]; then IFS=' ' read -ra PIP_PACKAGES <<< "$(tr '\n' ' ' < /mod-pip-packages-to-install.list)" if [[ ${#PIP_PACKAGES[@]} -ne 0 ]] && [[ ${PIP_PACKAGES[*]} != "" ]]; then echo "[mod-init] **** Installing all pip packages ****" + if [[ ! -d /lsiopy/bin ]]; then + echo "**** Creating venv ****" + python3 -m venv /lsiopy + fi python3 -m pip install -U pip wheel setuptools PIP_ARGS=() if [[ -f /usr/bin/apt ]]; then From 15496c0fca0bf49ea0fbe59d508546f0ca3944b1 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Tue, 16 May 2023 10:49:38 +0100 Subject: [PATCH 06/19] Externalise package check --- Dockerfile | 2 + Dockerfile.aarch64 | 2 + .../s6-rc.d/init-mods-package-install/run | 59 ------------------- 3 files changed, 4 insertions(+), 59 deletions(-) delete mode 100755 root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run diff --git a/Dockerfile b/Dockerfile index 5089a599..26ebe7ce 100644 --- a/Dockerfile +++ b/Dockerfile @@ -51,10 +51,12 @@ COPY --from=rootfs-stage /root-out/ / ARG BUILD_DATE ARG VERSION ARG MODS_VERSION="v3" +ARG PKG_INST_VERSION="v1" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="TheLamer" ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" +ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/package-install.${PKG_INST_VERSION}" "/etc/s6-overlay/s6-rc.d/init-mods-package-install/run" # environment variables ENV PS1="$(whoami)@$(hostname):$(pwd)\\$ " \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 191115ca..05b56a56 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -51,10 +51,12 @@ COPY --from=rootfs-stage /root-out/ / ARG BUILD_DATE ARG VERSION ARG MODS_VERSION="v3" +ARG PKG_INST_VERSION="v1" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="TheLamer" ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" +ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/package-install.${PKG_INST_VERSION}" "/etc/s6-overlay/s6-rc.d/init-mods-package-install/run" # environment variables ENV PS1="$(whoami)@$(hostname):$(pwd)\\$ " \ diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run deleted file mode 100755 index f54077e4..00000000 --- a/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/with-contenv bash -# shellcheck shell=bash - -if [[ -f "/mod-pip-packages-to-install.list" ]]; then - IFS=' ' read -ra PIP_PACKAGES <<< "$(tr '\n' ' ' < /mod-pip-packages-to-install.list)" - if [[ ${#PIP_PACKAGES[@]} -ne 0 ]] && [[ ${PIP_PACKAGES[*]} != "" ]]; then - if [[ -f /usr/bin/apt ]]; then - echo "python3-venv" >> /mod-repo-packages-to-install.list - elif [[ -f /sbin/apk ]]; then - echo "python3" >> /mod-repo-packages-to-install.list - fi - fi -fi - -if [[ -f "/mod-repo-packages-to-install.list" ]]; then - IFS=' ' read -ra REPO_PACKAGES <<< "$(tr '\n' ' ' < /mod-repo-packages-to-install.list)" - if [[ ${#REPO_PACKAGES[@]} -ne 0 ]] && [[ ${REPO_PACKAGES[*]} != "" ]]; then - echo "[mod-init] **** Installing all mod packages ****" - if [[ -f /usr/bin/apt ]]; then - export DEBIAN_FRONTEND="noninteractive" - apt-get update - apt-get install -y --no-install-recommends \ - "${REPO_PACKAGES[@]}" - elif [[ -f /sbin/apk ]]; then - apk add --no-cache \ - "${REPO_PACKAGES[@]}" - fi - fi -fi - -if [[ -f "/mod-pip-packages-to-install.list" ]]; then - IFS=' ' read -ra PIP_PACKAGES <<< "$(tr '\n' ' ' < /mod-pip-packages-to-install.list)" - if [[ ${#PIP_PACKAGES[@]} -ne 0 ]] && [[ ${PIP_PACKAGES[*]} != "" ]]; then - echo "[mod-init] **** Installing all pip packages ****" - if [[ ! -d /lsiopy/bin ]]; then - echo "**** Creating venv ****" - python3 -m venv /lsiopy - fi - python3 -m pip install -U pip wheel setuptools - PIP_ARGS=() - if [[ -f /usr/bin/apt ]]; then - PIP_ARGS+=("-f" "https://wheel-index.linuxserver.io/ubuntu/") - elif [[ -f /sbin/apk ]]; then - ALPINE_VER=$(grep main /etc/apk/repositories | sed 's|.*alpine/v||' | sed 's|/main.*||') - if [[ "${ALPINE_VER}" = "3.14" ]]; then - PIP_ARGS+=("-f" "https://wheel-index.linuxserver.io/alpine/") - else - PIP_ARGS+=("-f" "https://wheel-index.linuxserver.io/alpine-${ALPINE_VER}/") - fi - fi - python3 -m pip install \ - "${PIP_ARGS[@]}" \ - "${PIP_PACKAGES[@]}" - fi -fi - -rm -rf \ - /mod-repo-packages-to-install.list \ - /mod-pip-packages-to-install.list From 07df980344f2b046c255bf9be5a391fe2f4a06f8 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Sat, 20 May 2023 13:27:06 +0000 Subject: [PATCH 07/19] Bot Updating Package Versions --- package_versions.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 5d7b7055..1dddd3e4 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -12,16 +12,16 @@ busybox-binsh 1.36.0-r9 apk ca-certificates 20230506-r0 apk ca-certificates-bundle 20230506-r0 apk coreutils 9.3-r1 apk -curl 8.0.1-r2 apk +curl 8.1.0-r1 apk jq 1.6-r3 apk libacl 2.3.1-r3 apk libattr 2.5.1-r4 apk libbsd 0.11.7-r1 apk libc-utils 0.7.2-r5 apk libcrypto3 3.1.0-r4 apk -libcurl 8.0.1-r2 apk +libcurl 8.1.0-r1 apk libidn2 2.3.4-r1 apk -libintl 0.21.1-r5 apk +libintl 0.21.1-r7 apk libmd 1.0.4-r2 apk libncursesw 6.4_p20230506-r0 apk libproc2 4.0.3-r1 apk From d2b85ed2564bd6e78a3dd1c7789fe430c82781de Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Sat, 27 May 2023 13:27:37 +0000 Subject: [PATCH 08/19] Bot Updating Templated Files --- Jenkinsfile | 100 +++++++++++++++++++++++++++------------------------- 1 file changed, 52 insertions(+), 48 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 961ac618..c3b823d9 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -39,7 +39,12 @@ pipeline { // Setup all the basic environment variables needed for the build stage("Set ENV Variables base"){ steps{ - sh '''docker pull quay.io/skopeo/stable:v1 || : ''' + sh '''#! /bin/bash + containers=$(docker ps -aq) + if [[ -n "${containers}" ]]; then + docker stop ${containers} + fi + docker system prune -af --volumes || : ''' script{ env.EXIT_STATUS = '' env.LS_RELEASE = sh( @@ -202,12 +207,12 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + env.CI_TAGS = 'amd64-3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST } else { - env.CI_TAGS = '3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + env.CI_TAGS = '3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST } - env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST - env.META_TAG = '3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + env.META_TAG = '3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST env.EXT_RELEASE_TAG = '3.18-version-' + env.EXT_RELEASE_CLEAN env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/' @@ -405,8 +410,7 @@ pipeline { } steps{ sh '''#! /bin/bash - set -e - PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/baseimage-alpine") | .uuid') + PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/baseimage-alpine") | .uuid' || :) if [ -z "${PACKAGE_UUID}" ]; then echo "Adding package to Scarf.sh" curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \ @@ -513,9 +517,12 @@ pipeline { retry(5) { sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" } - sh '''docker rmi \ - ${IMAGE}:arm64v8-${META_TAG} \ - ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :''' + sh '''#! /bin/bash + containers=$(docker ps -aq) + if [[ -n "${containers}" ]]; then + docker stop ${containers} + fi + docker system prune -af --volumes || : ''' } } } @@ -691,17 +698,6 @@ pipeline { done ''' } - sh '''#! /bin/bash - for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do - docker rmi \ - ${DELETEIMAGE}:${META_TAG} \ - ${DELETEIMAGE}:${EXT_RELEASE_TAG} \ - ${DELETEIMAGE}:3.18 || : - if [ -n "${SEMVER}" ]; then - docker rmi ${DELETEIMAGE}:${SEMVER} || : - fi - done - ''' } } } @@ -772,9 +768,16 @@ pipeline { docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8 fi - docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-3.18 || : - docker manifest create ${MANIFESTIMAGE}:arm32v7-3.18 ${MANIFESTIMAGE}:amd64-3.18 - docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-3.18 + token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token') + digest=$(curl -s \ + --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ + --header "Authorization: Bearer ${token}" \ + "https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-3.18") + if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then + docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-3.18 || : + docker manifest create ${MANIFESTIMAGE}:arm32v7-3.18 ${MANIFESTIMAGE}:amd64-3.18 + docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-3.18 + fi docker manifest push --purge ${MANIFESTIMAGE}:3.18 docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} @@ -784,20 +787,6 @@ pipeline { done ''' } - sh '''#! /bin/bash - for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do - docker rmi \ - ${DELETEIMAGE}:arm64v8-${META_TAG} \ - ${DELETEIMAGE}:arm64v8-3.18 \ - ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || : - if [ -n "${SEMVER}" ]; then - docker rmi \ - ${DELETEIMAGE}:arm64v8-${SEMVER} || : - fi - done - docker rmi \ - ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || : - ''' } } } @@ -868,7 +857,6 @@ pipeline { stage('Pull Request Comment') { when { not {environment name: 'CHANGE_ID', value: ''} - environment name: 'CI', value: 'true' environment name: 'EXIT_STATUS', value: '' } steps { @@ -922,16 +910,24 @@ pipeline { echo "$escaped_table" } - # Retrieve JSON data from URL - data=$(get_json "$CI_JSON_URL") - # Create table from JSON data - table=$(build_table "$data") - echo -e "$table" + if [[ "${CI}" = "true" ]]; then + # Retrieve JSON data from URL + data=$(get_json "$CI_JSON_URL") + # Create table from JSON data + table=$(build_table "$data") + echo -e "$table" - curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ - -H "Accept: application/vnd.github.v3+json" \ - "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \ - -d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"''' + curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ + -H "Accept: application/vnd.github.v3+json" \ + "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \ + -d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}" + else + curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ + -H "Accept: application/vnd.github.v3+json" \ + "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \ + -d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}" + fi + ''' } } @@ -958,6 +954,14 @@ pipeline { } } cleanup { + sh '''#! /bin/bash + echo "Performing docker system prune!!" + containers=$(docker ps -aq) + if [[ -n "${containers}" ]]; then + docker stop ${containers} + fi + docker system prune -af --volumes || : + ''' cleanWs() } } From a0d322b3050123260b41000840c58362c688d509 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Sat, 27 May 2023 13:29:32 +0000 Subject: [PATCH 09/19] Bot Updating Package Versions --- package_versions.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 1dddd3e4..293401e3 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -4,7 +4,7 @@ alpine-baselayout-data 3.4.3-r1 apk alpine-keys 2.4-r1 apk alpine-release 3.18.0-r0 apk apk-tools 2.14.0-r2 apk -bash 5.2.15-r3 apk +bash 5.2.15-r5 apk brotli-libs 1.0.9-r14 apk busybox 1.36.0 binary busybox 1.36.0-r9 apk @@ -12,14 +12,14 @@ busybox-binsh 1.36.0-r9 apk ca-certificates 20230506-r0 apk ca-certificates-bundle 20230506-r0 apk coreutils 9.3-r1 apk -curl 8.1.0-r1 apk +curl 8.1.1-r1 apk jq 1.6-r3 apk libacl 2.3.1-r3 apk libattr 2.5.1-r4 apk libbsd 0.11.7-r1 apk libc-utils 0.7.2-r5 apk libcrypto3 3.1.0-r4 apk -libcurl 8.1.0-r1 apk +libcurl 8.1.1-r1 apk libidn2 2.3.4-r1 apk libintl 0.21.1-r7 apk libmd 1.0.4-r2 apk From 1adb03aef09921f3823e3106c2450c4fd745536a Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Sat, 3 Jun 2023 13:28:14 +0000 Subject: [PATCH 10/19] Bot Updating Package Versions --- package_versions.txt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 293401e3..b9405fcc 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -6,26 +6,26 @@ alpine-release 3.18.0-r0 apk apk-tools 2.14.0-r2 apk bash 5.2.15-r5 apk brotli-libs 1.0.9-r14 apk -busybox 1.36.0 binary -busybox 1.36.0-r9 apk -busybox-binsh 1.36.0-r9 apk +busybox 1.36.1 binary +busybox 1.36.1-r0 apk +busybox-binsh 1.36.1-r0 apk ca-certificates 20230506-r0 apk ca-certificates-bundle 20230506-r0 apk coreutils 9.3-r1 apk -curl 8.1.1-r1 apk +curl 8.1.2-r0 apk jq 1.6-r3 apk libacl 2.3.1-r3 apk libattr 2.5.1-r4 apk libbsd 0.11.7-r1 apk libc-utils 0.7.2-r5 apk -libcrypto3 3.1.0-r4 apk -libcurl 8.1.1-r1 apk +libcrypto3 3.1.1-r1 apk +libcurl 8.1.2-r0 apk libidn2 2.3.4-r1 apk libintl 0.21.1-r7 apk libmd 1.0.4-r2 apk libncursesw 6.4_p20230506-r0 apk libproc2 4.0.3-r1 apk -libssl3 3.1.0-r4 apk +libssl3 3.1.1-r1 apk libunistring 1.1-r1 apk linux-pam 1.5.2-r10 apk musl 1.2.4-r0 apk @@ -39,7 +39,7 @@ readline 8.2.1-r1 apk scanelf 1.3.7-r1 apk shadow 4.13-r2 apk skalibs 2.13.1.1-r1 apk -ssl_client 1.36.0-r9 apk +ssl_client 1.36.1-r0 apk tzdata 2023c-r1 apk utmps-libs 0.1.2.1-r1 apk zlib 1.2.13-r1 apk From e434ab3fe34e10ef1852ddc42f493425b63e22eb Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Sat, 17 Jun 2023 13:28:35 +0000 Subject: [PATCH 11/19] Bot Updating Package Versions --- package_versions.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index b9405fcc..ab5ad5e6 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -2,7 +2,7 @@ NAME VERSION TYPE alpine-baselayout 3.4.3-r1 apk alpine-baselayout-data 3.4.3-r1 apk alpine-keys 2.4-r1 apk -alpine-release 3.18.0-r0 apk +alpine-release 3.18.2-r0 apk apk-tools 2.14.0-r2 apk bash 5.2.15-r5 apk brotli-libs 1.0.9-r14 apk @@ -37,7 +37,7 @@ oniguruma 6.9.8-r1 apk procps-ng 4.0.3-r1 apk readline 8.2.1-r1 apk scanelf 1.3.7-r1 apk -shadow 4.13-r2 apk +shadow 4.13-r4 apk skalibs 2.13.1.1-r1 apk ssl_client 1.36.1-r0 apk tzdata 2023c-r1 apk From 4fe4220a7ee3e7e49afbfb1248ccb1feb69fa168 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Sat, 1 Jul 2023 13:31:32 +0000 Subject: [PATCH 12/19] Bot Updating Templated Files --- Jenkinsfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index c3b823d9..0d97bf6b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -278,7 +278,7 @@ pipeline { echo "Jenkinsfile is up to date." fi # Stage 2 - Delete old templates - OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml" + OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml Dockerfile.armhf" for i in ${OLD_TEMPLATES}; do if [[ -f "${i}" ]]; then TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}" @@ -314,12 +314,13 @@ pipeline { mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || : + cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || : cd ${TEMPDIR}/repo/${LS_REPO}/ if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then echo ".jenkins-external" >> .gitignore git add .gitignore fi - git add ${TEMPLATED_FILES} + git add readme-vars.yml ${TEMPLATED_FILES} git commit -m 'Bot Updating Templated Files' git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} From 7d5f74364e790879102c1f1deaedac76bfc3af2c Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Sat, 8 Jul 2023 13:32:10 +0000 Subject: [PATCH 13/19] Bot Updating Package Versions --- package_versions.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index ab5ad5e6..6b2f84ca 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -7,8 +7,8 @@ apk-tools 2.14.0-r2 apk bash 5.2.15-r5 apk brotli-libs 1.0.9-r14 apk busybox 1.36.1 binary -busybox 1.36.1-r0 apk -busybox-binsh 1.36.1-r0 apk +busybox 1.36.1-r1 apk +busybox-binsh 1.36.1-r1 apk ca-certificates 20230506-r0 apk ca-certificates-bundle 20230506-r0 apk coreutils 9.3-r1 apk @@ -39,7 +39,7 @@ readline 8.2.1-r1 apk scanelf 1.3.7-r1 apk shadow 4.13-r4 apk skalibs 2.13.1.1-r1 apk -ssl_client 1.36.1-r0 apk +ssl_client 1.36.1-r1 apk tzdata 2023c-r1 apk utmps-libs 0.1.2.1-r1 apk zlib 1.2.13-r1 apk From aa9b7f4b951aa0252ef3e1bd595161266ce429b2 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Sat, 15 Jul 2023 13:32:07 +0000 Subject: [PATCH 14/19] Bot Updating Package Versions --- package_versions.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 6b2f84ca..00ea8ba5 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -18,14 +18,14 @@ libacl 2.3.1-r3 apk libattr 2.5.1-r4 apk libbsd 0.11.7-r1 apk libc-utils 0.7.2-r5 apk -libcrypto3 3.1.1-r1 apk +libcrypto3 3.1.1-r2 apk libcurl 8.1.2-r0 apk libidn2 2.3.4-r1 apk libintl 0.21.1-r7 apk libmd 1.0.4-r2 apk libncursesw 6.4_p20230506-r0 apk libproc2 4.0.3-r1 apk -libssl3 3.1.1-r1 apk +libssl3 3.1.1-r2 apk libunistring 1.1-r1 apk linux-pam 1.5.2-r10 apk musl 1.2.4-r0 apk From 8cf7e207553069b1105f3bec54d576780918a2e1 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Sat, 22 Jul 2023 13:28:28 +0000 Subject: [PATCH 15/19] Bot Updating Package Versions --- package_versions.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 00ea8ba5..437bcaac 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -12,27 +12,27 @@ busybox-binsh 1.36.1-r1 apk ca-certificates 20230506-r0 apk ca-certificates-bundle 20230506-r0 apk coreutils 9.3-r1 apk -curl 8.1.2-r0 apk +curl 8.2.0-r1 apk jq 1.6-r3 apk libacl 2.3.1-r3 apk libattr 2.5.1-r4 apk libbsd 0.11.7-r1 apk libc-utils 0.7.2-r5 apk -libcrypto3 3.1.1-r2 apk -libcurl 8.1.2-r0 apk +libcrypto3 3.1.1-r3 apk +libcurl 8.2.0-r1 apk libidn2 2.3.4-r1 apk libintl 0.21.1-r7 apk libmd 1.0.4-r2 apk libncursesw 6.4_p20230506-r0 apk libproc2 4.0.3-r1 apk -libssl3 3.1.1-r2 apk +libssl3 3.1.1-r3 apk libunistring 1.1-r1 apk linux-pam 1.5.2-r10 apk musl 1.2.4-r0 apk musl-utils 1.2.4-r0 apk ncurses-terminfo-base 6.4_p20230506-r0 apk netcat-openbsd 1.219-r1 apk -nghttp2-libs 1.53.0-r0 apk +nghttp2-libs 1.55.1-r0 apk oniguruma 6.9.8-r1 apk procps-ng 4.0.3-r1 apk readline 8.2.1-r1 apk From 96984e385499c5741386b08cfe86e75a60a5383a Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Sat, 29 Jul 2023 13:26:27 +0000 Subject: [PATCH 16/19] Bot Updating Package Versions --- package_versions.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 437bcaac..a8681803 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -7,19 +7,19 @@ apk-tools 2.14.0-r2 apk bash 5.2.15-r5 apk brotli-libs 1.0.9-r14 apk busybox 1.36.1 binary -busybox 1.36.1-r1 apk -busybox-binsh 1.36.1-r1 apk +busybox 1.36.1-r2 apk +busybox-binsh 1.36.1-r2 apk ca-certificates 20230506-r0 apk ca-certificates-bundle 20230506-r0 apk coreutils 9.3-r1 apk -curl 8.2.0-r1 apk +curl 8.2.1-r0 apk jq 1.6-r3 apk libacl 2.3.1-r3 apk libattr 2.5.1-r4 apk libbsd 0.11.7-r1 apk libc-utils 0.7.2-r5 apk libcrypto3 3.1.1-r3 apk -libcurl 8.2.0-r1 apk +libcurl 8.2.1-r0 apk libidn2 2.3.4-r1 apk libintl 0.21.1-r7 apk libmd 1.0.4-r2 apk @@ -28,8 +28,8 @@ libproc2 4.0.3-r1 apk libssl3 3.1.1-r3 apk libunistring 1.1-r1 apk linux-pam 1.5.2-r10 apk -musl 1.2.4-r0 apk -musl-utils 1.2.4-r0 apk +musl 1.2.4-r1 apk +musl-utils 1.2.4-r1 apk ncurses-terminfo-base 6.4_p20230506-r0 apk netcat-openbsd 1.219-r1 apk nghttp2-libs 1.55.1-r0 apk @@ -39,7 +39,7 @@ readline 8.2.1-r1 apk scanelf 1.3.7-r1 apk shadow 4.13-r4 apk skalibs 2.13.1.1-r1 apk -ssl_client 1.36.1-r1 apk +ssl_client 1.36.1-r2 apk tzdata 2023c-r1 apk utmps-libs 0.1.2.1-r1 apk zlib 1.2.13-r1 apk From 816d25fbf7f40e1b7633f87ff8497eda6ef0aaf2 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Sat, 5 Aug 2023 13:27:30 +0000 Subject: [PATCH 17/19] Bot Updating Package Versions --- package_versions.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index a8681803..37c2cbb8 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -18,14 +18,14 @@ libacl 2.3.1-r3 apk libattr 2.5.1-r4 apk libbsd 0.11.7-r1 apk libc-utils 0.7.2-r5 apk -libcrypto3 3.1.1-r3 apk +libcrypto3 3.1.2-r0 apk libcurl 8.2.1-r0 apk libidn2 2.3.4-r1 apk libintl 0.21.1-r7 apk libmd 1.0.4-r2 apk libncursesw 6.4_p20230506-r0 apk libproc2 4.0.3-r1 apk -libssl3 3.1.1-r3 apk +libssl3 3.1.2-r0 apk libunistring 1.1-r1 apk linux-pam 1.5.2-r10 apk musl 1.2.4-r1 apk From 5e374ee43a648bf299d7ded81237584c3cefc0ed Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Sat, 12 Aug 2023 13:25:42 +0000 Subject: [PATCH 18/19] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index 37c2cbb8..7dd738a6 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -2,7 +2,7 @@ NAME VERSION TYPE alpine-baselayout 3.4.3-r1 apk alpine-baselayout-data 3.4.3-r1 apk alpine-keys 2.4-r1 apk -alpine-release 3.18.2-r0 apk +alpine-release 3.18.3-r0 apk apk-tools 2.14.0-r2 apk bash 5.2.15-r5 apk brotli-libs 1.0.9-r14 apk From ed066bdae3cf8b3937a9ba1d7039307f4f7abbce Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Fri, 18 Aug 2023 23:06:17 -0500 Subject: [PATCH 19/19] cron in base Signed-off-by: Eric Nemchik --- .../dependencies.d/init-os-end | 0 .../s6-rc.d/init-crontab-config/run | 26 +++++++++++++++++++ .../s6-rc.d/init-crontab-config/type | 1 + .../s6-overlay/s6-rc.d/init-crontab-config/up | 1 + .../svc-cron/dependencies.d/init-services | 0 root/etc/s6-overlay/s6-rc.d/svc-cron/run | 15 +++++++++++ root/etc/s6-overlay/s6-rc.d/svc-cron/type | 1 + .../s6-rc.d/user/contents.d/svc-cron | 0 8 files changed, 44 insertions(+) create mode 100644 root/etc/s6-overlay/s6-rc.d/init-crontab-config/dependencies.d/init-os-end create mode 100755 root/etc/s6-overlay/s6-rc.d/init-crontab-config/run create mode 100644 root/etc/s6-overlay/s6-rc.d/init-crontab-config/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-crontab-config/up create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-cron/dependencies.d/init-services create mode 100755 root/etc/s6-overlay/s6-rc.d/svc-cron/run create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-cron/type create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-cron diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/dependencies.d/init-os-end b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/dependencies.d/init-os-end new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run new file mode 100755 index 00000000..6eee9a69 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run @@ -0,0 +1,26 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +for cron_user in abc root; do + if [[ -f "/defaults/crontabs/${cron_user}" ]]; then + # make folders + mkdir -p \ + /config/crontabs + + # if crontabs do not exist in config + if [[ ! -f "/config/crontabs/${cron_user}" ]]; then + # copy crontab from system + if crontab -l -u "${cron_user}" >/dev/null; then + crontab -l -u "${cron_user}" >"/config/crontabs/${cron_user}" + fi + + # if crontabs still do not exist in config (were not copied from system) + # copy crontab from image defaults (using -n, do not overwrite an existing file) + cp -n "/defaults/crontabs/${cron_user}" /config/crontabs/ + fi + + # set permissions and import user crontabs + lsiown "${cron_user}":"${cron_user}" "/config/crontabs/${cron_user}" + crontab -u "${cron_user}" "/config/crontabs/${cron_user}" + fi +done diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/type b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/up b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/up new file mode 100644 index 00000000..d3541118 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-crontab-config/run diff --git a/root/etc/s6-overlay/s6-rc.d/svc-cron/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/svc-cron/dependencies.d/init-services new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/svc-cron/run b/root/etc/s6-overlay/s6-rc.d/svc-cron/run new file mode 100755 index 00000000..e8d71bfb --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-cron/run @@ -0,0 +1,15 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +if builtin command -v crontab >/dev/null && [[ -n "$(crontab -l -u abc)" || -n "$(crontab -l -u root)" ]]; then + if builtin command -v busybox >/dev/null && [[ $(busybox) =~ [[:space:]](crond)([,]|$) ]]; then + exec busybox crond -f -S -l 5 + elif [[ -f /usr/bin/apt ]] && [[ -f /usr/sbin/cron ]]; then + exec /usr/sbin/cron -f -L 5 + else + echo "**** cron not found ****" + sleep infinity + fi +else + sleep infinity +fi diff --git a/root/etc/s6-overlay/s6-rc.d/svc-cron/type b/root/etc/s6-overlay/s6-rc.d/svc-cron/type new file mode 100644 index 00000000..5883cff0 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-cron/type @@ -0,0 +1 @@ +longrun diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-cron b/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-cron new file mode 100644 index 00000000..e69de29b