From 6d6b1ddc1fbb3cf35e6b35e162b66e615f668590 Mon Sep 17 00:00:00 2001 From: Adrian Barrio Date: Wed, 9 Oct 2024 13:53:17 +0200 Subject: [PATCH 01/12] feat: add aarch64 support --- Dockerfile.aarch64 | 43 +++++++++++++++++++++++++++++++++++++++++++ README.md | 2 +- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 Dockerfile.aarch64 diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 new file mode 100644 index 0000000..a01964c --- /dev/null +++ b/Dockerfile.aarch64 @@ -0,0 +1,43 @@ +FROM ghcr.io/linuxserver/baseimage-kasmvnc:arm64v8-kali + +# set version label +ARG BUILD_DATE +ARG VERSION +ARG SPOTUBE_VERSION +LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" +LABEL maintainer="thelamer" + +# title +ENV TITLE=Spotube + +RUN \ + echo "**** add icon ****" && \ + curl -o \ + /kclient/public/icon.png \ + https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/spotube-logo.png && \ + echo "**** install packages ****" && \ + apt-get update && \ + if [ -z ${SPOTUBE_VERSION+x} ]; then \ + SPOTUBE_VERSION=$(curl -sX GET "https://api.github.com/repos/KRTirtho/spotube/releases/latest" \ + | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + fi && \ + curl -o \ + /tmp/spotube.deb -L \ + "https://github.com/KRTirtho/spotube/releases/download/${SPOTUBE_VERSION}/Spotube-linux-aarch64.deb" && \ + apt install -y --no-install-recommends \ + /tmp/spotube.deb && \ + echo "**** cleanup ****" && \ + apt-get autoclean && \ + rm -rf \ + /config/.cache \ + /var/lib/apt/lists/* \ + /var/tmp/* \ + /tmp/* + +# add local files +COPY /root / + +# ports and volumes +EXPOSE 3000 + +VOLUME /config diff --git a/README.md b/README.md index cc6cc42..7eda575 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ The architectures supported by this image are: | Architecture | Available | Tag | | :----: | :----: | ---- | | x86-64 | ✅ | amd64-\ | -| arm64 | ❌ | | +| arm64 | ✅ | amd64-\ | | armhf | ❌ | | ## Application Setup From 237d2644206e6061a41549f197229a9487b2715f Mon Sep 17 00:00:00 2001 From: Adrian Barrio Date: Wed, 9 Oct 2024 14:05:52 +0200 Subject: [PATCH 02/12] chore: enable jenkins multi arch --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index d33a74c..a110c52 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -30,7 +30,7 @@ pipeline { DEV_DOCKERHUB_IMAGE = 'lsiodev/spotube' PR_DOCKERHUB_IMAGE = 'lspipepr/spotube' DIST_IMAGE = 'ubuntu' - MULTIARCH = 'false' + MULTIARCH = 'true' CI = 'true' CI_WEB = 'true' CI_PORT = '3000' From bf7bf4c13880791f12450f3d854a21a73a19f4a8 Mon Sep 17 00:00:00 2001 From: Adrian Barrio Date: Wed, 9 Oct 2024 14:11:31 +0200 Subject: [PATCH 03/12] chore: update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7eda575..5a5414c 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ The architectures supported by this image are: | Architecture | Available | Tag | | :----: | :----: | ---- | | x86-64 | ✅ | amd64-\ | -| arm64 | ✅ | amd64-\ | +| arm64 | ✅ | arm64v8-\ | | armhf | ❌ | | ## Application Setup From 323e2481069fab741d2708b34358c9024653756f Mon Sep 17 00:00:00 2001 From: Adrian Barrio Date: Wed, 9 Oct 2024 14:41:47 +0200 Subject: [PATCH 04/12] fix: change arm64v8-debianbookworm base image --- Dockerfile.aarch64 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index a01964c..657cd01 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-kasmvnc:arm64v8-kali +FROM ghcr.io/linuxserver/baseimage-kasmvnc:arm64v8-debianbookworm # set version label ARG BUILD_DATE From 0a76709ecfc30982cf1b30ba85d5e482ebe7ebb7 Mon Sep 17 00:00:00 2001 From: Adrian Barrio Date: Wed, 9 Oct 2024 14:43:03 +0200 Subject: [PATCH 05/12] feat: update jenkins vars --- jenkins-vars.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 46db9fb..835ba7b 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -1,5 +1,4 @@ --- - # jenkins variables project_name: docker-spotube external_type: github_stable @@ -18,7 +17,7 @@ repo_vars: - DEV_DOCKERHUB_IMAGE = 'lsiodev/spotube' - PR_DOCKERHUB_IMAGE = 'lspipepr/spotube' - DIST_IMAGE = 'ubuntu' - - MULTIARCH = 'false' + - MULTIARCH = 'true' - CI = 'true' - CI_WEB = 'true' - CI_PORT = '3000' From d448eff9e3a3415d74b2d1eee167dc4e9fd57125 Mon Sep 17 00:00:00 2001 From: Adrian Barrio Date: Wed, 9 Oct 2024 14:45:23 +0200 Subject: [PATCH 06/12] feat: update readme vars --- readme-vars.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/readme-vars.yml b/readme-vars.yml index 55c091e..0c07847 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -11,8 +11,8 @@ project_blurb_optional_extras_enabled: false # supported architectures available_architectures: - - { arch: "{{ arch_x86_64 }}", tag: "latest"} - + - { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"} + - { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} # development version development_versions: false From ff5359a6fab36d5ced8448b440eedec570b24b62 Mon Sep 17 00:00:00 2001 From: Adrian Barrio Date: Wed, 9 Oct 2024 15:31:53 +0200 Subject: [PATCH 07/12] chore: add readme changelog --- readme-vars.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/readme-vars.yml b/readme-vars.yml index 0c07847..d21ab44 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -87,4 +87,5 @@ app_setup_block: | # changelog changelogs: + - { date: "10.09.24:", desc: "Add aarch64 support." } - { date: "26.04.24:", desc: "Initial release." } From 993d1e3a75645193d7aefcf9b2e517ae9b734940 Mon Sep 17 00:00:00 2001 From: Adrian Barrio Date: Wed, 9 Oct 2024 15:36:23 +0200 Subject: [PATCH 08/12] fix: readme changelog date format --- readme-vars.yml | 43 +++++++++++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/readme-vars.yml b/readme-vars.yml index d21ab44..9c9edd4 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -1,5 +1,4 @@ --- - # project information project_name: spotube project_url: "https://spotube.krtirtho.dev/" @@ -11,8 +10,8 @@ project_blurb_optional_extras_enabled: false # supported architectures available_architectures: - - { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"} - - { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} + - { arch: "{{ arch_x86_64 }}", tag: "amd64-latest" } + - { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest" } # development version development_versions: false @@ -21,27 +20,47 @@ common_param_env_vars_enabled: true param_container_name: "{{ project_name }}" param_usage_include_env: true param_env_vars: - - { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London." } + - { + env_var: "TZ", + env_value: "Europe/London", + desc: "Specify a timezone to use EG Europe/London.", + } param_usage_include_vols: true param_volumes: - - { vol_path: "/config", vol_host_path: "/path/to/config", desc: "Users home directory in the container, stores local files and settings" } + - { + vol_path: "/config", + vol_host_path: "/path/to/config", + desc: "Users home directory in the container, stores local files and settings", + } param_usage_include_ports: true param_ports: - - { external_port: "3000", internal_port: "3000", port_desc: "Spotube desktop gui." } - - { external_port: "3001", internal_port: "3001", port_desc: "HTTPS Spotube desktop gui." } + - { + external_port: "3000", + internal_port: "3000", + port_desc: "Spotube desktop gui.", + } + - { + external_port: "3001", + internal_port: "3001", + port_desc: "HTTPS Spotube desktop gui.", + } # optional variables opt_security_opt_param: true opt_security_opt_param_vars: - - { run_var: "seccomp=unconfined", compose_var: "seccomp:unconfined", desc: "For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker." } + - { + run_var: "seccomp=unconfined", + compose_var: "seccomp:unconfined", + desc: "For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker.", + } # application setup block app_setup_block_enabled: true app_setup_block: | The application can be accessed at: - + * http://yourhost:3000/ * https://yourhost:3001/ - + ### Options in all KasmVNC based GUI containers This container is based on [Docker Baseimage KasmVNC](https://github.com/linuxserver/docker-baseimage-kasmvnc) which means there are additional environment variables and run configurations to enable or disable specific functionality. @@ -64,7 +83,7 @@ app_setup_block: | | NO_FULL | Do not autmatically fullscreen applications when using openbox. | #### Optional run configurations - + | Variable | Description | | :----: | --- | | `--privileged` | Will start a Docker in Docker (DinD) setup inside the container to use docker in an isolated environment. For increased performance mount the Docker directory inside the container to the host IE `-v /home/user/docker-data:/var/lib/docker`. | @@ -87,5 +106,5 @@ app_setup_block: | # changelog changelogs: - - { date: "10.09.24:", desc: "Add aarch64 support." } + - { date: "09.10.24:", desc: "Add aarch64 support." } - { date: "26.04.24:", desc: "Initial release." } From 9c6c23264368985c5d33bab8d2d4f91396a400ef Mon Sep 17 00:00:00 2001 From: Adrian Barrio Date: Wed, 9 Oct 2024 15:43:31 +0200 Subject: [PATCH 09/12] fix: readme vars formatting style --- readme-vars.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme-vars.yml b/readme-vars.yml index d21ab44..2d9a729 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -87,5 +87,5 @@ app_setup_block: | # changelog changelogs: - - { date: "10.09.24:", desc: "Add aarch64 support." } + - { date: "09.10.24:", desc: "Add aarch64 support." } - { date: "26.04.24:", desc: "Initial release." } From 8cad6fb4463d9abfb0a0070e3ffdda8aa1b5dc29 Mon Sep 17 00:00:00 2001 From: Adrian Barrio Date: Wed, 9 Oct 2024 15:45:14 +0200 Subject: [PATCH 10/12] fix: readme vars formatting style --- readme-vars.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme-vars.yml b/readme-vars.yml index 9c9edd4..ea3787e 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -106,5 +106,5 @@ app_setup_block: | # changelog changelogs: - - { date: "09.10.24:", desc: "Add aarch64 support." } + - { date: "10.09.24:", desc: "Add aarch64 support." } - { date: "26.04.24:", desc: "Initial release." } From 6e4385239e40bf77f57b9b4a814472e2d05f1cae Mon Sep 17 00:00:00 2001 From: Adrian Barrio Date: Wed, 9 Oct 2024 15:47:31 +0200 Subject: [PATCH 11/12] fix: readme vars formatting style v2 --- readme-vars.yml | 40 +++++++++++----------------------------- 1 file changed, 11 insertions(+), 29 deletions(-) diff --git a/readme-vars.yml b/readme-vars.yml index ea3787e..04f8ae6 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -1,4 +1,5 @@ --- + # project information project_name: spotube project_url: "https://spotube.krtirtho.dev/" @@ -12,6 +13,7 @@ project_blurb_optional_extras_enabled: false available_architectures: - { arch: "{{ arch_x86_64 }}", tag: "amd64-latest" } - { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest" } + # development version development_versions: false @@ -20,47 +22,27 @@ common_param_env_vars_enabled: true param_container_name: "{{ project_name }}" param_usage_include_env: true param_env_vars: - - { - env_var: "TZ", - env_value: "Europe/London", - desc: "Specify a timezone to use EG Europe/London.", - } + - { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London." } param_usage_include_vols: true param_volumes: - - { - vol_path: "/config", - vol_host_path: "/path/to/config", - desc: "Users home directory in the container, stores local files and settings", - } + - { vol_path: "/config", vol_host_path: "/path/to/config", desc: "Users home directory in the container, stores local files and settings" } param_usage_include_ports: true param_ports: - - { - external_port: "3000", - internal_port: "3000", - port_desc: "Spotube desktop gui.", - } - - { - external_port: "3001", - internal_port: "3001", - port_desc: "HTTPS Spotube desktop gui.", - } + - { external_port: "3000", internal_port: "3000", port_desc: "Spotube desktop gui." } + - { external_port: "3001", internal_port: "3001", port_desc: "HTTPS Spotube desktop gui." } # optional variables opt_security_opt_param: true opt_security_opt_param_vars: - - { - run_var: "seccomp=unconfined", - compose_var: "seccomp:unconfined", - desc: "For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker.", - } + - { run_var: "seccomp=unconfined", compose_var: "seccomp:unconfined", desc: "For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker." } # application setup block app_setup_block_enabled: true app_setup_block: | The application can be accessed at: - + * http://yourhost:3000/ * https://yourhost:3001/ - + ### Options in all KasmVNC based GUI containers This container is based on [Docker Baseimage KasmVNC](https://github.com/linuxserver/docker-baseimage-kasmvnc) which means there are additional environment variables and run configurations to enable or disable specific functionality. @@ -83,7 +65,7 @@ app_setup_block: | | NO_FULL | Do not autmatically fullscreen applications when using openbox. | #### Optional run configurations - + | Variable | Description | | :----: | --- | | `--privileged` | Will start a Docker in Docker (DinD) setup inside the container to use docker in an isolated environment. For increased performance mount the Docker directory inside the container to the host IE `-v /home/user/docker-data:/var/lib/docker`. | @@ -107,4 +89,4 @@ app_setup_block: | # changelog changelogs: - { date: "10.09.24:", desc: "Add aarch64 support." } - - { date: "26.04.24:", desc: "Initial release." } + - { date: "26.04.24:", desc: "Initial release." } \ No newline at end of file From 1c45722e307cc92a4b497a4fdd8935030ef38849 Mon Sep 17 00:00:00 2001 From: Adrian Barrio Date: Wed, 9 Oct 2024 15:48:28 +0200 Subject: [PATCH 12/12] chore: update date format v2 --- readme-vars.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme-vars.yml b/readme-vars.yml index 04f8ae6..d88f1cb 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -88,5 +88,5 @@ app_setup_block: | # changelog changelogs: - - { date: "10.09.24:", desc: "Add aarch64 support." } + - { date: "09.10.24:", desc: "Add aarch64 support." } - { date: "26.04.24:", desc: "Initial release." } \ No newline at end of file