Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Ubuntu Virtual Desktop in a Docker Container (with RDP Access)

Featured Replies

  • Replies 118
  • Views 64.2k
  • Created
  • Last Reply

So I have tried FreeRDP, and it seems like it rather difficult to try get it compiled for recent distros. So I think I might be abandoning that idea.

  • Author

So I have tried FreeRDP, and it seems like it rather difficult to try get it compiled for recent distros. So I think I might be abandoning that idea.

We might look into building it into unraid itself. What dependencies does it require?

It's not about building it into unraid, I think it would be better if we made it part of the container. Sort of like how novnc is part of my tmm container.

A new finding: we have to reconfigure the timezone upon startup:

 

Is this a new issue?  Your current Crashplan docker does that too:

  https://github.com/gfjardim/docker-containers/blob/master/crashplan/config.sh

 

Yes, I correct the timezone on some containers. This should be default for every container.

 

Is that fix still needed if one does the mapped volume of "/etc/localtime" to "/etc/localtime" read only?

A new finding: we have to reconfigure the timezone upon startup:

 

Is this a new issue?  Your current Crashplan docker does that too:

  https://github.com/gfjardim/docker-containers/blob/master/crashplan/config.sh

 

Yes, I correct the timezone on some containers. This should be default for every container.

 

Is that fix still needed if one does the mapped volume of "/etc/localtime" to "/etc/localtime" read only?

 

The Docker Manager doesn't map /etc/localtime anymore, so yes, that fix is needed for those programs that don't use TZ environment variable.

A new finding: we have to reconfigure the timezone upon startup:

 

Is this a new issue?  Your current Crashplan docker does that too:

  https://github.com/gfjardim/docker-containers/blob/master/crashplan/config.sh

 

Yes, I correct the timezone on some containers. This should be default for every container.

 

Is that fix still needed if one does the mapped volume of "/etc/localtime" to "/etc/localtime" read only?

 

The Docker Manager doesn't map /etc/localtime anymore, so yes, that fix is needed for those programs that don't use TZ environment variable.

 

Right, but I manually added that into my mappings, so now I'm curious as to which items need the TZ fix and which ones would need the etc localtime. Seems like both items would be needed for fullproof fix?

 

Right, but I manually added that into my mappings, so now I'm curious as to which items need the TZ fix and which ones would need the etc localtime. Seems like both items would be needed for fullproof fix?

 

There's no such thing as fullproof. Even if you put all those things together, some things still need to be manually tweaked, like php. I had more success using TZ variable, so I chose TZ.

So I have tried FreeRDP, and it seems like it rather difficult to try get it compiled for recent distros. So I think I might be abandoning that idea.

 

 

this builds in phusion 0.9.16

 

lot of dependencies to build, but the compile only takes about 2 minutes tops.

 

So I have tried FreeRDP, and it seems like it rather difficult to try get it compiled for recent distros. So I think I might be abandoning that idea.

 

 

this builds in phusion 0.9.16

 

lot of dependencies to build, but the compile only takes about 2 minutes tops.

 

You built it within the machine? I was trying to avoid that in order to minimize the bloat of having to install gcc and things like that. I will give this a shot myself and report back.

So I have tried FreeRDP, and it seems like it rather difficult to try get it compiled for recent distros. So I think I might be abandoning that idea.

 

 

this builds in phusion 0.9.16

 

lot of dependencies to build, but the compile only takes about 2 minutes tops.

 

You built it within the machine? I was trying to avoid that in order to minimize the bloat of having to install gcc and things like that. I will give this a shot myself and report back.

 

Take a 2 phase approach.

Step 1, create a docker container just for compiling and creating packages.

Step 2, install the created package into the pristine docker container.

 

The docker in step 1 will not be published for end users to use.

The docker in step 2 is what the end users will use.

 

 

So I have tried FreeRDP, and it seems like it rather difficult to try get it compiled for recent distros. So I think I might be abandoning that idea.

 

 

this builds in phusion 0.9.16

 

lot of dependencies to build, but the compile only takes about 2 minutes tops.

 

You built it within the machine? I was trying to avoid that in order to minimize the bloat of having to install gcc and things like that. I will give this a shot myself and report back.

 

Take a 2 phase approach.

Step 1, create a docker container just for compiling and creating packages.

Step 2, install the created package into the pristine docker container.

 

The docker in step 1 will not be published for end users to use.

The docker in step 2 is what the end users will use.

 

I did something like this with a build of kodi......

 

I didn't use full blown ubuntu packaging, just fpm , but it did the job for me.

 

https://github.com/sparklyballs/docker-containers/tree/master/fpm-packager

 

 

and the container i used it in...

 

https://github.com/sparklyballs/koma-test

So I have tried FreeRDP, and it seems like it rather difficult to try get it compiled for recent distros. So I think I might be abandoning that idea.

 

 

this builds in phusion 0.9.16

 

lot of dependencies to build, but the compile only takes about 2 minutes tops.

 

You built it within the machine? I was trying to avoid that in order to minimize the bloat of having to install gcc and things like that. I will give this a shot myself and report back.

 

 

I built it using this info here.

 

https://github.com/FreeRDP/FreeRDP/wiki/Compilation

 

Dockerfile

 

FROM phusion/baseimage:0.9.16
ENV DEBIAN_FRONTEND noninteractive
# Set correct environment variables
ENV HOME /root
ENV TERM xterm


RUN apt-get update && \
apt-get install -y --no-install-recommends build-essential git-core cmake libssl-dev libx11-dev libxext-dev libxinerama-dev libxcursor-dev libxdamage-dev libxv-dev libxkbfile-dev libasound2-dev libcups2-dev libxml2 libxml2-dev libxrandr-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libxi-dev libgstreamer-plugins-base1.0-dev && \
cd /tmp && \
git clone git://github.com/FreeRDP/FreeRDP.git && \
cd FreeRDP && \
cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSE2=ON . && \
make && \
make install && \
echo "/usr/local/lib/freerdp" >> /etc/ld.so.conf.d/freerdp.conf && \

apt-get purge --remove build-essential git-core cmake -y && \
apt-get autoremove -y && \
# clean up
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
/usr/share/man /usr/share/groff /usr/share/info \
/usr/share/lintian /usr/share/linda /var/cache/man

So I have tried FreeRDP, and it seems like it rather difficult to try get it compiled for recent distros. So I think I might be abandoning that idea.

 

 

this builds in phusion 0.9.16

 

lot of dependencies to build, but the compile only takes about 2 minutes tops.

 

You built it within the machine? I was trying to avoid that in order to minimize the bloat of having to install gcc and things like that. I will give this a shot myself and report back.

 

Take a 2 phase approach.

Step 1, create a docker container just for compiling and creating packages.

Step 2, install the created package into the pristine docker container.

 

The docker in step 1 will not be published for end users to use.

The docker in step 2 is what the end users will use.

 

Yeah that's the approach I was trying to take.

sparklyballs@Docker-Server:~$ git clone https://git01.codeplex.com/casablanca

Cloning into 'casablanca'...

remote: Counting objects: 16300, done.

remote: Compressing objects: 100% (7450/7450), done.

remote: Total 16300 (delta 11755), reused 12233 (delta 8576)

error: RPC failed; result=56, HTTP code = 200

Receiving objects: 100% (16300/16300), 4.18 MiB | 726.00 KiB/s, done.

Resolving deltas: 100% (11755/11755), done.

 

 

 

sparklyballs@Docker-Server:~$ git clone https://git01.codeplex.com/casablanca

Cloning into 'casablanca'...

remote: Counting objects: 16300, done.

remote: Compressing objects: 100% (7450/7450), done.

remote: Total 16300 (delta 11755), reused 12233 (delta 8576)

error: RPC failed; result=56, HTTP code = 200

Receiving objects: 100% (16300/16300), 4.18 MiB | 726.00 KiB/s, done.

Resolving deltas: 100% (11755/11755), done.

Exact same thing i'm getting. Ha ha, the host i'm on is called DockerServer without the hyphen.

  • Author

Paying close attention to this with much interest...

Paying close attention to this with much interest...

 

Me too, I hope you have a better clue than me as to what they're actually on about!

  • Author

Paying close attention to this with much interest...

 

Me too, I hope you have a better clue than me as to what they're actually on about!

 

The active discussion is with respect to how we can enable folks to use RDP instead of VNC for connecting to Docker Containers with a desktop interface / apps.  RDP is a better protocol from a performance standpoint, but to be able to connect to it through a browser like VNC, you need something like FreeRDP or Guacamole.  Guacamole requires java, which is a pretty large dependency requirement (to put things in perspective, to add Guacamole to the unRAID OS itself would over double our size).  FreeRDP is what both HH and SB are talking about now, and they are talking about compiling it inside the container itself.  This is an incredibly helpful exercise.  In the end, we may end up creating some new C code in order to replace the need for Java with Guacamole, but it's still early to be discussing those details...

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.