Dockerfile-daniel 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. FROM ubuntu:20.04 as builder
  2. MAINTAINER Daniel Guerra
  3. # Install packages
  4. ENV DEBIAN_FRONTEND noninteractive
  5. RUN sed -i "s/# deb-src/deb-src/g" /etc/apt/sources.list
  6. RUN apt-get -y update
  7. RUN apt-get -yy upgrade
  8. ENV BUILD_DEPS="git autoconf pkg-config libssl-dev libpam0g-dev \
  9. libx11-dev libxfixes-dev libxrandr-dev nasm xsltproc flex \
  10. bison libxml2-dev dpkg-dev libcap-dev"
  11. RUN apt-get -yy install sudo apt-utils software-properties-common $BUILD_DEPS
  12. # Build xrdp
  13. WORKDIR /tmp
  14. RUN apt-get source pulseaudio
  15. RUN apt-get build-dep -yy pulseaudio
  16. WORKDIR /tmp/pulseaudio-13.99.1
  17. RUN dpkg-buildpackage -rfakeroot -uc -b
  18. WORKDIR /tmp
  19. RUN git clone --branch devel --recursive https://github.com/neutrinolabs/xrdp.git
  20. WORKDIR /tmp/xrdp
  21. RUN ./bootstrap
  22. RUN ./configure
  23. RUN make
  24. RUN make install
  25. WORKDIR /tmp
  26. RUN apt -yy install libpulse-dev
  27. RUN git clone --recursive https://github.com/neutrinolabs/pulseaudio-module-xrdp.git
  28. WORKDIR /tmp/pulseaudio-module-xrdp
  29. RUN ./bootstrap && ./configure PULSE_DIR=/tmp/pulseaudio-13.99.1
  30. RUN make
  31. RUN mkdir -p /tmp/so
  32. RUN cp src/.libs/*.so /tmp/so
  33. FROM ubuntu:20.04
  34. ARG ADDITIONAL_PACKAGES=""
  35. ENV ADDITIONAL_PACKAGES=${ADDITIONAL_PACKAGES}
  36. ENV DEBIAN_FRONTEND noninteractive
  37. RUN apt update && apt install -y software-properties-common apt-utils
  38. RUN add-apt-repository "deb http://archive.canonical.com/ $(lsb_release -sc) partner" && apt update
  39. RUN apt -y full-upgrade && apt-get install -y \
  40. adobe-flashplugin \
  41. browser-plugin-freshplayer-pepperflash \
  42. ca-certificates \
  43. crudini \
  44. firefox \
  45. less \
  46. locales \
  47. openssh-server \
  48. pulseaudio \
  49. sudo \
  50. supervisor \
  51. uuid-runtime \
  52. vim \
  53. vlc \
  54. wget \
  55. xauth \
  56. xautolock \
  57. xfce4 \
  58. xfce4-clipman-plugin \
  59. xfce4-cpugraph-plugin \
  60. xfce4-netload-plugin \
  61. xfce4-screenshooter \
  62. xfce4-taskmanager \
  63. xfce4-terminal \
  64. xfce4-xkb-plugin \
  65. xorgxrdp \
  66. xprintidle \
  67. xrdp \
  68. $ADDITIONAL_PACKAGES && \
  69. apt remove -y light-locker xscreensaver && \
  70. apt autoremove -y && \
  71. rm -rf /var/cache/apt /var/lib/apt/lists && \
  72. mkdir -p /var/lib/xrdp-pulseaudio-installer
  73. COPY --from=builder /tmp/so/module-xrdp-source.so /var/lib/xrdp-pulseaudio-installer
  74. COPY --from=builder /tmp/so/module-xrdp-sink.so /var/lib/xrdp-pulseaudio-installer
  75. ADD bin /usr/bin
  76. ADD etc /etc
  77. ADD autostart /etc/xdg/autostart
  78. # Configure
  79. RUN mkdir /var/run/dbus && \
  80. cp /etc/X11/xrdp/xorg.conf /etc/X11 && \
  81. sed -i "s/console/anybody/g" /etc/X11/Xwrapper.config && \
  82. sed -i "s/xrdp\/xorg/xorg/g" /etc/xrdp/sesman.ini && \
  83. locale-gen en_US.UTF-8 && \
  84. echo "pulseaudio -D --enable-memfd=True" > /etc/skel/.Xsession && \
  85. echo "xfce4-session" >> /etc/skel/.Xsession && \
  86. cp -r /etc/ssh /ssh_orig && \
  87. rm -rf /etc/ssh/* && \
  88. rm -rf /etc/xrdp/rsakeys.ini /etc/xrdp/*.pem
  89. # Docker config
  90. VOLUME ["/etc/ssh","/home"]
  91. EXPOSE 3389 22 9001
  92. ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
  93. CMD ["supervisord"]