DomiStyle / docker-idrac6

iDRAC 6 web interface and VNC proxy
https://hub.docker.com/r/domistyle/idrac6/
MIT License
756 stars 135 forks source link

Added arm64 version #64

Open dawidkulas opened 11 months ago

dawidkulas commented 11 months ago

This is an Arm64 version for usage with Raspberry Pi or any other arm64 based devices. I have tested VNC on Raspberry Pi 4 Model B with 4 GB of RAM and it worked fine. Mounting ISO and screenshots haven't been tested.

Closes #4

FoxxMD commented 11 months ago

This can also be done without needing to specify specific architectures. Replacing the prerequisite package lines and wget for the specific debs with this:

apt-get install -y wget software-properties-common libx11-dev gcc xdotool gnupg ca-certificates curl && \
    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://repos.azul.com/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
    apt-get update && \
    apt-get install zulu8-jre -y

(remove DOCKER_IMAGE_PLATFORM=arm64 as well)

I'm doing this in my fork and publishing working cross platform images with buildx

dawidkulas commented 11 months ago

@FoxxMD Thank you very much for the advice! I added the repository as described on Azul website, made that additional dependencies are removed when not needed and also remove wget from being downloaded as it is not needed anymore.

And as you said, I removed DOCKER_IMAGE_PLATFORM=arm64 to make the build truly cross-platform.

dawidkulas commented 11 months ago

I am very sorry, I made a mistake of removing wget, and then I realised that it is required. It is now fixed.

FoxxMD commented 11 months ago

Additional improvement that would be beneficial for all images @DomiStyle ...

In this commit/PR https://github.com/DomiStyle/docker-idrac6/pull/49 java.security was removed in order to "un"disable TLSv1.1 but it also made the fix architecture specific:

RUN rm /usr/lib/jvm/zulu-7-amd64/jre/lib/security/java.security

This can be achieved without architecture specific steps by overriding java.security with a new file in the java exec arg:

  1. Remove RUN rm /usr/lib/jvm/zulu-7-**amd64**/jre/lib/security/java.security
  2. create a java.security file that overrides the affected settings
  3. In dockerfile COPY java.security /java.security
  4. In startapp.sh add the java arg -Djava.security.properties="/java.security"

EDIT: If you need assistance with buildx for cross-platform docker images lmw. can be done with github actions or manually.