On 3/22/24 06:57, Mike Wyatt wrote:
On Mar 22, 2024, at 9:56 AM, Nick Couchman <[email protected]> wrote:
On Thu, Mar 21, 2024 at 11:28 PM Nathaniel Belles <[email protected]>
wrote:
Hello,
I have been interested in getting Guacamole working in Docker on ARM for
running on Raspberry Pi’s. Although the Raspberry Pi isn’t my primary use case,
it does have the unique advantage of being cheap and ultra-low power (albeit at
degraded performance compared to full-on desktops). I have a Raspberry Pi
installed at all my remote locations so even when my servers are rebooting or
having connectivity issues, I can still at least access devices on the local
network through Guacamole (mostly SSH and the occasional VNC). I looked around
and only found pre-compiled versions that claimed to be compatible with
Raspberry Pi’s but were tragically old versions of Guacamole.
I have gone through the (surprisingly not painstaking) process of modifying the
Dockerfile’s for guacamole-server and guacamole-client. I could create a pull
request if that is what is wanted to integrate it to the main codebase. For
now, I felt I should at least share the changes I made here for others looking
to do the same.
This is great, thank you! I would think a pull request would be a great thing.
guacamole-server/Dockerfile changes:
- -DWITH_SSE2=ON \
+ -DWITH_SSE2=OFF \
(SSE2 doesn’t compile on ARM, I don’t have any windows computers on this
network to verify that FreeRDP still works with this option disabled)
I'm not terribly familiar with Dockerfiles, but hopefully there's a way we
could set/disable this option based on the architecture?
-Nick
Docker files have "build args", basically env vars that can be passed at build
time for this sort of thing: https://docs.docker.com/build/guide/build-args/
Tho some projects also use totally separate Docker files, ie Dockerfile.x86_64,
Dockerfile.aarch64, etc.
The arguments used for building each library are happily already set
with build args. The build arg in this case is "FREERDP_OPTS":
https://github.com/apache/guacamole-server/blob/3782339031bdc47e3c67c5630e42f1f2fd9493a0/Dockerfile#L73-L116
If things were further split into additional architecture-specific sets
of options (ie: FREERDP_ARM_OPTS and FREERDP_X86_OPTS in addition to
FREERDP_OPTS), I think this could be done without needing to double-up
on Dockerfiles.
- Mike
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]