Skip to content
Snippets Groups Projects
Select Git revision
  • e4029590f41f72c7afd17e5e865bc6dbd54d28cb
  • main default
  • slow_mode
  • tammojan
  • debian-service
  • dpkg
  • bless_test
  • improve_sattracker
  • update_dockerfile
  • yellowoffset
  • decplus
  • focusboxmouseout
  • trace2port_startup
  • 2016-04-02-trace2port
  • scan
  • azerror
  • beaglebone
  • build
  • corso2014
  • sercos
  • ui
  • console_2020-06-28
  • controller_2020-06-28
  • 2018-01-17
  • 2016-04-02-with-trace2port
  • 2016-04-02
  • DT_update
  • 2013-06-21
28 results

Dockerfile

Blame
  • Dockerfile 3.23 KiB
    # To use this Dockerfile:
    # Create an empty directory and cd inside it.
    # Get the source code from dt_ctrl in a subdirectry, e.g. through git:
    # ```
    # git clone https://gitlab.camras.nl/dijkema/dt_ctrl
    # ```
    # Create the docker file with `docker build --tag consoledemo .`
    # This Dockerfile is hardcoded to run the websockets server at
    # port 8000.
    # Start the docker container with
    # docker run -it -p 8081:80 -p 8000:8000 -p 11031:11031 -p 11030:11030 -p 11040:11040 -p 11041:11041 -p 11042:11042 -p 11011:11011 consoledemo
    # Then visit the consoledemo from the host machine at http://localhost:8081 (NOT at port 8000, which will show a non-working HTML page)
    FROM ubuntu:16.04
    
    RUN apt-get -y update
    RUN apt-get -y install vim autoconf make gcc libtool-bin libglib2.0-dev libbison-dev flex git cmake build-essential libssl-dev screen telnet libmagic-dev wget
    
    RUN cd /root && git clone git://git.code.sf.net/p/libnova/libnova libnova-libnova
    RUN cd /root/libnova-libnova && libtoolize && autoreconf -i && ./configure && make install
    
    RUN cd /root && git clone https://github.com/warmcat/libwebsockets.git
    RUN cd /root/libwebsockets && mkdir build && cd build && cmake .. && make && make install
    
    RUN cd /root && git clone https://gitlab.camras.nl/dijkema/dt_ctrl
    
    RUN cd /root/dt_ctrl && autoconf && ./configure --with-libwebsockets=/usr/local && make
    RUN cd /root/dt_ctrl && make console/console/console_httpd
    RUN mkdir -p /var/log/dt/traces
    
    RUN ldconfig
    
    RUN chmod a+rwx /root
    RUN mkdir -p /var/www/
    RUN mkdir -p /var/www/console/htdocs/tle && cd /var/www/console/htdocs/tle && wget "http://celestrak.com/NORAD/elements/amateur.txt" -v -O amateur.txt && wget "http://celestrak.com/NORAD/elements/tle-new.txt" -v -O tle-new.txt && wget "http://celestrak.com/NORAD/elements/gps-ops.txt" -v -O gps-ops.txt && cd -
    
    RUN apt-get update && apt-get -y install apache2 net-tools
    
    RUN mkdir -p /var/www/console/ && cp -r /root/dt_ctrl/console/htdocs /var/www/console && cp -r /root/dt_ctrl/console/js /var/www/console
    
    # Configure apache to serve the console htdocs
    RUN echo '\
    <VirtualHost *:80>\n\
    \tServerAdmin webmaster@localhost\n\
    \tDocumentRoot /var/www/console/htdocs\n\
    \t<Directory "/var/www/console/htdocs">\n\
    \t\tOrder allow,deny\n\
    \t\tAllow from all\n\
    \t\tAllowOverride None\n\
    \t\tAddHandler cgi-script .cgi\n\
    \t\tOptions +ExecCGI -MultiViews +SymLinksIfOwnerMatch\n\
    \t</Directory>\n\
    \n\
    ErrorLog ${APACHE_LOG_DIR}/error.log\n\
    CustomLog ${APACHE_LOG_DIR}/access.log combined\n\
    </VirtualHost>\n\
    ' > /etc/apache2/sites-enabled/000-default.conf
    
    # Configure ports for the console and controller
    RUN mkdir /etc/dt && echo '\
    [console]\n\
    host=localhost\n\
    \n\
    [controller]\n\
    host=localhost\n\
    \n\
    [htdocs]\n\
    path=/var/www/console/htdocs\n\
    port=8000\n\
    ' > /etc/dt/dt_host.ini