diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index 30cb679..389f84f 100755 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -23,7 +23,7 @@ jobs: echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY echo "> External trigger running off of master branch. To disable this trigger, add \`wireguard_master\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY - EXT_RELEASE=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.20/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \ + EXT_RELEASE=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.21/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \ && awk '/^P:'"wireguard-tools"'$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://') echo "Type is \`alpine_repo\`" >> $GITHUB_STEP_SUMMARY if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then @@ -96,7 +96,7 @@ jobs: if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then echo "Version \`${EXT_RELEASE}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY exit 0 - elif [[ $(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.20/main/aarch64/APKINDEX.tar.gz" | tar -xz -C /tmp && awk '/^P:'"wireguard-tools"'$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://') != "${EXT_RELEASE}" ]]; then + elif [[ $(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.21/main/aarch64/APKINDEX.tar.gz" | tar -xz -C /tmp && awk '/^P:'"wireguard-tools"'$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://') != "${EXT_RELEASE}" ]]; then echo "New version \`${EXT_RELEASE}\` found; but not all arch repos updated yet; exiting" >> $GITHUB_STEP_SUMMARY FAILURE_REASON="New version ${EXT_RELEASE} for wireguard tag latest is detected, however not all arch repos are updated yet. Will try again later." curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, diff --git a/Dockerfile b/Dockerfile index 636998f..1602e32 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM ghcr.io/linuxserver/baseimage-alpine:3.20 +FROM ghcr.io/linuxserver/baseimage-alpine:3.21 # set version label ARG BUILD_DATE @@ -10,6 +10,10 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA LABEL maintainer="thespad" RUN \ + if [ -z ${WIREGUARD_RELEASE+x} ]; then \ + WIREGUARD_RELEASE=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.21/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \ + && awk '/^P:wireguard-tools$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \ + fi && \ echo "**** install dependencies ****" && \ apk add --no-cache \ bc \ @@ -25,7 +29,7 @@ RUN \ libqrencode-tools \ net-tools \ openresolv \ - wireguard-tools && \ + wireguard-tools==${WIREGUARD_RELEASE} && \ echo "wireguard" >> /etc/modules && \ cd /sbin && \ for i in ! !-save !-restore; do \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 62e8e63..a1c91e6 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.20 +FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.21 # set version label ARG BUILD_DATE @@ -10,6 +10,10 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA LABEL maintainer="thespad" RUN \ + if [ -z ${WIREGUARD_RELEASE+x} ]; then \ + WIREGUARD_RELEASE=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.21/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \ + && awk '/^P:wireguard-tools$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \ + fi && \ echo "**** install dependencies ****" && \ apk add --no-cache \ bc \ @@ -25,7 +29,7 @@ RUN \ libqrencode-tools \ net-tools \ openresolv \ - wireguard-tools && \ + wireguard-tools==${WIREGUARD_RELEASE} && \ echo "wireguard" >> /etc/modules && \ cd /sbin && \ for i in ! !-save !-restore; do \ diff --git a/Jenkinsfile b/Jenkinsfile index becc0d0..17acd69 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -27,8 +27,7 @@ pipeline { DEV_DOCKERHUB_IMAGE = 'lsiodev/wireguard' PR_DOCKERHUB_IMAGE = 'lspipepr/wireguard' DIST_IMAGE = 'alpine' - DIST_TAG = '3.20' - DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/v3.20/main/' + DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/v3.21/main/' DIST_REPO_PACKAGES = 'wireguard-tools' MULTIARCH='true' CI='false' diff --git a/README.md b/README.md index 9f1b994..3714ed1 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ This image provides various versions that are available via tags. Please read th | Tag | Available | Description | | :----: | :----: |--- | -| latest | ✅ | Stable releases based on Alpine *without* support for compiling Wireguard modules. | +| latest | ✅ | Stable releases based on Alpine *without* support for compiling Wireguard module. | | legacy | ✅ | Stable releases with support for compiling Wireguard modules for older kernels. | ## Application Setup @@ -226,7 +226,7 @@ Containers are configured using parameters passed at runtime (such as those abov | `-e PERSISTENTKEEPALIVE_PEERS=` | Set to `all` or a list of comma separated peers (ie. `1,4,laptop`) for the wireguard server to send keepalive packets to listed peers every 25 seconds. Useful if server is accessed via domain name and has dynamic IP. Used only in server mode. | | `-e LOG_CONFS=true` | Generated QR codes will be displayed in the docker log. Set to `false` to skip log output. | | `-v /config` | Contains all relevant configuration files. | -| `-v /lib/modules` | Host kernel modules for situations where they're not already loaded. | +| `-v /lib/modules` | Path to host kernel module for situations where it's not already loaded. | | `--sysctl=` | Required for client mode. | | `--read-only=true` | Run container with a read-only filesystem. Please [read the docs](https://docs.linuxserver.io/misc/read-only/). | | `--cap-add=NET_ADMIN` | Neccessary for Wireguard to create its VPN interface. | @@ -398,6 +398,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **20.12.24:** - Rebase to Alpine 3.21. * **13.08.24:** - Add `errors` plugin to default Corefile. * **23.07.24:** - Install kmod from alpine repository. * **24.05.24:** - Rebase to Alpine 3.20, install wireguard-tools from Alpine repo. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index c20b7e0..c1647c9 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -15,8 +15,7 @@ repo_vars: - DEV_DOCKERHUB_IMAGE = 'lsiodev/wireguard' - PR_DOCKERHUB_IMAGE = 'lspipepr/wireguard' - DIST_IMAGE = 'alpine' - - DIST_TAG = '3.20' - - DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/v3.20/main/' + - DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/v3.21/main/' - DIST_REPO_PACKAGES = 'wireguard-tools' - MULTIARCH='true' - CI='false' diff --git a/readme-vars.yml b/readme-vars.yml index c29c016..95b9110 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -13,7 +13,7 @@ available_architectures: # development version development_versions: true development_versions_items: - - {tag: "latest", desc: "Stable releases based on Alpine *without* support for compiling Wireguard modules."} + - {tag: "latest", desc: "Stable releases based on Alpine *without* support for compiling Wireguard module."} - {tag: "legacy", desc: "Stable releases with support for compiling Wireguard modules for older kernels."} # container parameters common_param_env_vars_enabled: true @@ -23,13 +23,10 @@ param_volumes: - {vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Contains all relevant configuration files."} opt_param_usage_include_vols: true opt_param_volumes: - - {vol_path: "/lib/modules", vol_host_path: "/lib/modules", desc: "Host kernel modules for situations where they're not already loaded."} + - {vol_path: "/lib/modules", vol_host_path: "/lib/modules", desc: "Path to host kernel module for situations where it's not already loaded."} param_usage_include_ports: true param_ports: - {external_port: "51820", internal_port: "51820/udp", port_desc: "wireguard port"} -param_usage_include_env: true -param_env_vars: - - {env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London"} cap_add_param: true cap_add_param_vars: - {cap_add_var: "NET_ADMIN", desc: "Neccessary for Wireguard to create its VPN interface."} @@ -168,6 +165,7 @@ init_diagram: | "wireguard:latest" <- Base Images # changelog changelogs: + - {date: "20.12.24:", desc: "Rebase to Alpine 3.21."} - {date: "13.08.24:", desc: "Add `errors` plugin to default Corefile."} - {date: "23.07.24:", desc: "Install kmod from alpine repository."} - {date: "24.05.24:", desc: "Rebase to Alpine 3.20, install wireguard-tools from Alpine repo."}