mirror of
https://github.com/TrezOne/docker-mods-uptime-kuma-timeout-fix.git
synced 2026-06-26 10:12:46 -04:00
Merge pull request #842 from linuxserver/universal-cloudflared-multi
cloudflared: switch to multi-arch
This commit is contained in:
@@ -7,6 +7,7 @@ env:
|
||||
ENDPOINT: "linuxserver/mods" #don't modify
|
||||
BASEIMAGE: "universal" #replace
|
||||
MODNAME: "cloudflared" #replace
|
||||
MULTI_ARCH: "true" #set to true if needed
|
||||
|
||||
jobs:
|
||||
set-vars:
|
||||
@@ -19,6 +20,7 @@ jobs:
|
||||
echo "ENDPOINT=${{ env.ENDPOINT }}" >> $GITHUB_OUTPUT
|
||||
echo "BASEIMAGE=${{ env.BASEIMAGE }}" >> $GITHUB_OUTPUT
|
||||
echo "MODNAME=${{ env.MODNAME }}" >> $GITHUB_OUTPUT
|
||||
echo "MULTI_ARCH=${{ env.MULTI_ARCH }}" >> $GITHUB_OUTPUT
|
||||
# **** If the mod needs to be versioned, set the versioning logic below. Otherwise leave as is. ****
|
||||
MOD_VERSION=$(curl -s https://api.github.com/repos/cloudflare/cloudflared/releases/latest | jq -rc ".tag_name")
|
||||
echo "MOD_VERSION=${MOD_VERSION}" >> $GITHUB_OUTPUT
|
||||
@@ -27,6 +29,7 @@ jobs:
|
||||
ENDPOINT: ${{ steps.outputs.outputs.ENDPOINT }}
|
||||
BASEIMAGE: ${{ steps.outputs.outputs.BASEIMAGE }}
|
||||
MODNAME: ${{ steps.outputs.outputs.MODNAME }}
|
||||
MULTI_ARCH: ${{ steps.outputs.outputs.MULTI_ARCH }}
|
||||
MOD_VERSION: ${{ steps.outputs.outputs.MOD_VERSION }}
|
||||
|
||||
build:
|
||||
@@ -42,4 +45,5 @@ jobs:
|
||||
ENDPOINT: ${{ needs.set-vars.outputs.ENDPOINT }}
|
||||
BASEIMAGE: ${{ needs.set-vars.outputs.BASEIMAGE }}
|
||||
MODNAME: ${{ needs.set-vars.outputs.MODNAME }}
|
||||
MULTI_ARCH: ${{ needs.set-vars.outputs.MULTI_ARCH }}
|
||||
MOD_VERSION: ${{ needs.set-vars.outputs.MOD_VERSION }}
|
||||
|
||||
+18
-8
@@ -1,7 +1,7 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
# Build container
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:3.18 AS buildstage
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:3.19 AS buildstage
|
||||
|
||||
ARG MOD_VERSION
|
||||
|
||||
@@ -11,14 +11,24 @@ RUN \
|
||||
MOD_VERSION=$(curl -s https://api.github.com/repos/cloudflare/cloudflared/releases/latest \
|
||||
| jq -rc ".tag_name"); \
|
||||
fi && \
|
||||
echo "**** grab binaries ****" && \
|
||||
mkdir -p /root-layer/cloudflared && \
|
||||
curl -fo \
|
||||
/root-layer/cloudflared/cloudflared-amd64 -L \
|
||||
"https://github.com/cloudflare/cloudflared/releases/download/${MOD_VERSION}/cloudflared-linux-amd64" && \
|
||||
curl -fo \
|
||||
/root-layer/cloudflared/cloudflared-arm64 -L \
|
||||
"https://github.com/cloudflare/cloudflared/releases/download/${MOD_VERSION}/cloudflared-linux-arm64" && \
|
||||
if [ $(uname -m) = "x86_64" ]; then \
|
||||
echo "**** Downloading x86_64 binaries ****" && \
|
||||
curl -fo \
|
||||
/root-layer/cloudflared/cloudflared -L \
|
||||
"https://github.com/cloudflare/cloudflared/releases/download/${MOD_VERSION}/cloudflared-linux-amd64" && \
|
||||
curl -fo \
|
||||
/root-layer/cloudflared/yq -L \
|
||||
"https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64"; \
|
||||
elif [ $(uname -m) = "aarch64" ]; then \
|
||||
echo "**** Downloading aarch64 binaries ****" && \
|
||||
curl -fo \
|
||||
/root-layer/cloudflared/cloudflared -L \
|
||||
"https://github.com/cloudflare/cloudflared/releases/download/${MOD_VERSION}/cloudflared-linux-arm64" && \
|
||||
curl -fo \
|
||||
/root-layer/cloudflared/yq -L \
|
||||
"https://github.com/mikefarah/yq/releases/latest/download/yq_linux_arm64"; \
|
||||
fi && \
|
||||
chmod +x /root-layer/cloudflared/*
|
||||
|
||||
COPY root/ /root-layer/
|
||||
|
||||
@@ -17,16 +17,15 @@ else
|
||||
fi
|
||||
echo "**** Linux architecture found: ${ARCH} ****"
|
||||
|
||||
echo "**** Checking for cloudflared setup script dependencies... ****"
|
||||
YQARCH="${ARCH}"
|
||||
echo "**** Temporarily installing /tmp/yq... ****"
|
||||
curl -sLo /tmp/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_${YQARCH}
|
||||
chmod +x /tmp/yq
|
||||
|
||||
echo "**** Installing cloudflared...****"
|
||||
if [ -d "/cloudflared/" ]; then
|
||||
echo "**** Moving /cloudflared/cloudflared-${ARCH} to /usr/local/bin/cloudflared... ****"
|
||||
mv /cloudflared/cloudflared-${ARCH} /usr/local/bin/cloudflared
|
||||
if ! command -v yq || ! yq --help | grep -q 'mikefarah'; then
|
||||
echo "**** Installing yq ****"
|
||||
mv /cloudflared/yq /usr/local/bin/yq
|
||||
fi
|
||||
|
||||
echo "**** Moving /cloudflared/cloudflared to /usr/local/bin/cloudflared... ****"
|
||||
mv /cloudflared/cloudflared /usr/local/bin/cloudflared
|
||||
|
||||
echo "**** Deleting tmp /cloudflared dir... ****"
|
||||
rm -rf /cloudflared
|
||||
@@ -92,14 +91,14 @@ if [[ ${#CF_ZONE_ID} -gt 0 ]] && [[ ${#CF_ACCOUNT_ID} -gt 0 ]] && [[ ${#CF_API_T
|
||||
printf "credentials-file: /etc/cloudflared/${CF_TUNNEL_ID}.json\n" >> "/etc/cloudflared/config.yml"
|
||||
printf "no-autoupdate: true\n\n" >> "/etc/cloudflared/config.yml"
|
||||
printf "${CF_TUNNEL_CONFIG}" >> "/etc/cloudflared/config.yml"
|
||||
/tmp/yq e /etc/cloudflared/config.yml
|
||||
yq e /etc/cloudflared/config.yml
|
||||
echo "**** Config for cloudflare tunnel (${CF_TUNNEL_NAME}) saved to /etc/cloudflared/config.yml ****"
|
||||
|
||||
echo "**** Validating cloudflared tunnel rules... ****"
|
||||
cloudflared tunnel ingress validate
|
||||
|
||||
echo "**** Updating cloudflare zone... ****"
|
||||
for HOSTNAME in $(/tmp/yq e ".ingress.[].hostname" /etc/cloudflared/config.yml); do
|
||||
for HOSTNAME in $(yq e ".ingress.[].hostname" /etc/cloudflared/config.yml); do
|
||||
if [ ! "${HOSTNAME}" = "null" ]; then
|
||||
echo "**** Searching zone for hostname (${HOSTNAME}) via API... ****"
|
||||
JSON_RESULT=$(curl -sX \
|
||||
|
||||
Reference in New Issue
Block a user