From 9b847732dc45ca49eb447eaabe3c34c576614ab0 Mon Sep 17 00:00:00 2001 From: Antonio Arenzana Pulido Date: Tue, 1 Feb 2022 16:12:18 +0100 Subject: [PATCH] #167 fix JAVA_HOME env variable not setting accordingly to architecture --- CHANGELOG.md | 1 + dockerhub/Dockerfile.j2 | 4 ++++ dockerhub/main.yml | 1 + tasks/install_openjdk.yml | 12 ++++++++++-- vars/adoptopenjdk/Debian-10.yml | 1 + vars/adoptopenjdk/Debian-11.yml | 1 + vars/openjdk/Debian-10.yml | 1 + vars/openjdk/Debian-11.yml | 1 + vars/openjdk/Debian-9.yml | 1 + vars/openjdk/Ubuntu-16.yml | 1 + vars/openjdk/Ubuntu-18.yml | 1 + vars/openjdk/Ubuntu-20.yml | 1 + 12 files changed, 24 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c73bfb6..a56fd4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ This project adheres to [Semantic Versioning](http://semver.org/) and [Keep a ch ### Added - *[#160](https://github.com/idealista/java_role/issues/160) Remove packer for playbook for the task of pushing images to Dockerhub* @aren-pulid0 - *[#165](https://github.com/idealista/java_role/issues/165) Add JAVA_HOME as ENV in docker image* @aren-pulid0 +- *[#167](https://github.com/idealista/java_role/issues/167) Support for multiarch images* @aren-pulid0 ## [7.0.2](https://github.com/idealista/java_role/tree/7.0.2) (2021-08-19) [Full Changelog](https://github.com/idealista/java_role/compare/7.0.1...7.0.2) diff --git a/dockerhub/Dockerfile.j2 b/dockerhub/Dockerfile.j2 index 5246dbc..d009b0e 100644 --- a/dockerhub/Dockerfile.j2 +++ b/dockerhub/Dockerfile.j2 @@ -1,5 +1,9 @@ FROM {{ docker_image_base }} +RUN rm -rf /var/lib/apt/lists/* && apt-get update \ + && apt-get install -y sudo systemd init systemd-sysv \ + && apt-get autoremove -y && apt-get clean + RUN mkdir -p /usr/share/man/man1 RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get upgrade -y && apt-get install -y python3 sudo bash ca-certificates && apt-get clean; \ diff --git a/dockerhub/main.yml b/dockerhub/main.yml index 07473d1..7bc3ded 100644 --- a/dockerhub/main.yml +++ b/dockerhub/main.yml @@ -17,6 +17,7 @@ - name: Create builder command: docker buildx create --name multiarch --driver docker-container --use + ignore_errors: true - name: Use builder command: docker buildx inspect --bootstrap diff --git a/tasks/install_openjdk.yml b/tasks/install_openjdk.yml index dce09ff..d7b7790 100644 --- a/tasks/install_openjdk.yml +++ b/tasks/install_openjdk.yml @@ -14,9 +14,17 @@ java_required_key_repositories_openjdk: "{{ java_required_key_repositories_openjdk if java_required_key_repositories_openjdk is defined and java_required_key_repositories_openjdk is not sameas None and java_required_key_repositories_openjdk|length else __java_required_key_repositories_openjdk }}" # noqa 204 java_required_libs_openjdk: "{{ java_required_libs_openjdk if java_required_libs_openjdk is defined and java_required_libs_openjdk is not sameas None and java_required_libs_openjdk|length else __java_required_libs_openjdk }}" # noqa 204 -- name: Java | Setting OS specific variables (II) +- name: Java | Setting OS and architecture specific variables (II) set_fact: - java_open_jdk_home_dir: "{{ java_open_jdk_home_dir if java_open_jdk_home_dir is defined and java_open_jdk_home_dir is not sameas None and java_open_jdk_home_dir else __java_open_jdk_home_dir }}" # noqa 204 + java_open_jdk_home_dir: |- + {% if ansible_facts.architecture == "x86_64" %} + {{ java_open_jdk_home_dir if java_open_jdk_home_dir is defined and java_open_jdk_home_dir is not sameas None and java_open_jdk_home_dir else __java_open_jdk_home_dir }} + {%- endif %} + {%- if ansible_facts.architecture == "aarch64" and (ansible_distribution == "Debian" or ansible_distribution == "Ubuntu") and (java_jdk_vendor == "adoptopenjdk" or java_jdk_vendor == "openjdk") %} + {{ java_open_jdk_home_dir if java_open_jdk_home_dir is defined and java_open_jdk_home_dir is not sameas None and java_open_jdk_home_dir else __java_open_jdk_home_dir_arm64 }} + {%- endif %} + + java_open_jdk_package: "{{ java_open_jdk_package if java_open_jdk_package is defined and java_open_jdk_package is not sameas None and java_open_jdk_package else __java_open_jdk_package }}" # noqa 204 - name: Java | Setting specific variables diff --git a/vars/adoptopenjdk/Debian-10.yml b/vars/adoptopenjdk/Debian-10.yml index abfa907..7c5784a 100644 --- a/vars/adoptopenjdk/Debian-10.yml +++ b/vars/adoptopenjdk/Debian-10.yml @@ -10,6 +10,7 @@ __java_required_libs_openjdk: [] __java_required_repositories_openjdk: - deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ {{ ansible_distribution_release }} main __java_open_jdk_home_dir: adoptopenjdk-{{ java_open_jdk_version_major }}-hotspot-amd64 +__java_open_jdk_home_dir_arm64: adoptopenjdk-{{ java_open_jdk_version_major }}-hotspot-arm64 __java_required_key_repositories_openjdk: - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public diff --git a/vars/adoptopenjdk/Debian-11.yml b/vars/adoptopenjdk/Debian-11.yml index 5b31c93..0f7bb07 100644 --- a/vars/adoptopenjdk/Debian-11.yml +++ b/vars/adoptopenjdk/Debian-11.yml @@ -11,6 +11,7 @@ __java_required_libs_openjdk: [] __java_required_repositories_openjdk: - deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ {{ ansible_distribution_release }} main __java_open_jdk_home_dir: adoptopenjdk-{{ java_open_jdk_version_major }}-hotspot-amd64 +__java_open_jdk_home_dir_arm64: adoptopenjdk-{{ java_open_jdk_version_major }}-hotspot-arm64 __java_required_key_repositories_openjdk: - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public diff --git a/vars/openjdk/Debian-10.yml b/vars/openjdk/Debian-10.yml index 1384704..faffe0c 100644 --- a/vars/openjdk/Debian-10.yml +++ b/vars/openjdk/Debian-10.yml @@ -10,3 +10,4 @@ __java_required_key_repositories_openjdk: [] __java_open_jdk_package: openjdk-{{ java_open_jdk_version_major }}-jdk-headless __java_open_jdk_home_dir: java-{{ java_open_jdk_version_major }}-openjdk-amd64 +__java_open_jdk_home_dir_arm64: java-{{ java_open_jdk_version_major }}-openjdk-arm64 diff --git a/vars/openjdk/Debian-11.yml b/vars/openjdk/Debian-11.yml index e5dd1c9..c250c5d 100644 --- a/vars/openjdk/Debian-11.yml +++ b/vars/openjdk/Debian-11.yml @@ -11,5 +11,6 @@ __java_open_jdk_apt_extra_packages: [] __java_open_jdk_package: openjdk-{{ java_open_jdk_version_major }}-jdk-headless __java_open_jdk_home_dir: java-{{ java_open_jdk_version_major }}-openjdk-amd64 +__java_open_jdk_home_dir_arm64: java-{{ java_open_jdk_version_major }}-openjdk-arm64 ansible_python_interpreter: /usr/bin/python3 diff --git a/vars/openjdk/Debian-9.yml b/vars/openjdk/Debian-9.yml index e98de57..d194101 100644 --- a/vars/openjdk/Debian-9.yml +++ b/vars/openjdk/Debian-9.yml @@ -11,3 +11,4 @@ __java_required_key_repositories_openjdk: [] __java_open_jdk_package: openjdk-{{ java_open_jdk_version_major }}-jdk-headless __java_open_jdk_home_dir: java-{{ java_open_jdk_version_major }}-openjdk-amd64 +__java_open_jdk_home_dir_arm64: java-{{ java_open_jdk_version_major }}-openjdk-arm64 diff --git a/vars/openjdk/Ubuntu-16.yml b/vars/openjdk/Ubuntu-16.yml index 4075870..1f0427d 100644 --- a/vars/openjdk/Ubuntu-16.yml +++ b/vars/openjdk/Ubuntu-16.yml @@ -10,3 +10,4 @@ __java_required_key_repositories_openjdk: [] __java_open_jdk_package: openjdk-{{ java_open_jdk_version_major }}-jdk-headless __java_open_jdk_home_dir: java-{{ java_open_jdk_version_major }}-openjdk-amd64 +__java_open_jdk_home_dir_arm64: java-{{ java_open_jdk_version_major }}-openjdk-arm64 diff --git a/vars/openjdk/Ubuntu-18.yml b/vars/openjdk/Ubuntu-18.yml index 350081b..fef1127 100644 --- a/vars/openjdk/Ubuntu-18.yml +++ b/vars/openjdk/Ubuntu-18.yml @@ -14,3 +14,4 @@ __java_required_key_repositories_openjdk: [] __java_open_jdk_package: openjdk-{{ java_open_jdk_version_major }}-jdk-headless __java_open_jdk_home_dir: java-{{ java_open_jdk_version_major }}-openjdk-amd64 +__java_open_jdk_home_dir_arm64: java-{{ java_open_jdk_version_major }}-openjdk-arm64 diff --git a/vars/openjdk/Ubuntu-20.yml b/vars/openjdk/Ubuntu-20.yml index 471a99e..ac0b1b6 100644 --- a/vars/openjdk/Ubuntu-20.yml +++ b/vars/openjdk/Ubuntu-20.yml @@ -13,3 +13,4 @@ __java_required_key_repositories_openjdk: [] __java_open_jdk_package: openjdk-{{ java_open_jdk_version_major }}-jdk-headless __java_open_jdk_home_dir: java-{{ java_open_jdk_version_major }}-openjdk-amd64 +__java_open_jdk_home_dir_arm64: java-{{ java_open_jdk_version_major }}-openjdk-arm64