Commit 37a27031 authored by Stefano Alberto Russo's avatar Stefano Alberto Russo
Browse files

Merge branch 'fetaure/gui' into develop

parents 32bafd3a becbe205
Loading
Loading
Loading
Loading
+59 −4
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@ RUN apt-get install git curl sudo nano -y

RUN cd /opt/ && git clone https://github.com/lofar-astron/LOFARBeam.git
RUN mkdir /opt/LOFARBeam/build && cd /opt/LOFARBeam/build && cmake -DCMAKE_INSTALL_PREFIX=/opt/lofarsoft -DPYTHON_EXECUTABLE=$(which python) -DCASACORE_INCLUDE_DIRS=/opt/lofarsoft/include/casacore/ -DCASACORE_LIBRARIES=/opt/lofarsoft/lib/ -DCASACORE_ROOT_DIR=/opt/lofarsoft/ ../ && make -j16 && make install 


#------------------------
# Lofar user
#------------------------
@@ -37,10 +39,63 @@ COPY data/input_data /input_data
COPY data/output_data /output_data
RUN chown lofar:lofar /home/lofar && chown -R lofar:lofar /input_data && chown -R lofar:lofar /output_data

# This is required mainly for Singularity
RUN mv /home/lofar /home/vanilla_lofar
RUN ln -s /tmp/lofarhome /home/lofar
RUN rm -rf /tmp/lofarhome

#----------------------
# Minimal Desktop
#----------------------

# Utilities
RUN apt-get install -y telnet unzip wget supervisor build-essential python-dev git-core openjdk-8-jre

# Global Supervisord conf
COPY files/supervisord.conf /etc/supervisor/

# Install xvfb that triggers minimal install of X base packages and xterm
RUN apt-get install xvfb xterm  -y

# Install base packages for VNC server and headless desktop (2)
RUN cd /opt && wget https://bintray.com/tigervnc/stable/download_file?file_path=tigervnc-1.8.0.x86_64.tar.gz -O tigervnc-1.8.0.x86_64.tar.gz \
            && tar -zxvf tigervnc-1.8.0.x86_64.tar.gz \
            && mv tigervnc-1.8.0.x86_64 tigervnc

# Supervisord configuration
COPY files/supervisord_vnc.conf /etc/supervisor/conf.d/
COPY files/run_vnc.sh /etc/supervisor/conf.d/
COPY files/run_novnc.sh /etc/supervisor/conf.d/
RUN chmod 755 /etc/supervisor/conf.d/run_vnc.sh
RUN chmod 755 /etc/supervisor/conf.d/run_novnc.sh

# Web VNC (noVNC) v0.6.1.
# NOTE: this is a custom version from Doro Wu (fcwu.tw@gmail.com).
# TODO: Check differences and maybe move to 0.6.2
COPY files/noVNC.tar.gz /usr/lib/
RUN cd /usr/lib/ && tar -zxvf noVNC.tar.gz
COPY files/index.html /usr/lib/noVNC

RUN apt-get install -y net-tools

# Supervisord configuration
COPY files/supervisord_novnc.conf /etc/supervisor/conf.d/

# X environment setup/startup
RUN apt-get install fluxbox -y
COPY files/xstartup /opt/tigervnc/
RUN chmod 755 /opt/tigervnc/xstartup

# Prepare for logs
RUN mkdir /home/lofar/.logs && chown lofar:lofar /home/lofar/.logs

# Add fluxbox customisations
COPY files/dot_fluxbox /home/lofar/.fluxbox
RUN chown -R lofar:lofar /home/lofar/.fluxbox
COPY files/background.jpg /usr/share/images/fluxbox/background.jpg

# Rename lofar home folder as a "vanilla" home folder
RUN mv /home/lofar /lofar_home_vanilla

# Give write access to anyone to the home folder so the entrypoint will be able
# to copy over the /home/matauser_vanilla into /home/lofar (for Singularity)
RUN chmod 777 /home


#----------------------
+114 −38
Original line number Diff line number Diff line
#!/bin/bash

# Exit on any error. More complex thing could be done in future
# Exit on any error. More complex stuff could be done in future
# (see https://stackoverflow.com/questions/4381618/exit-a-script-on-error)
set -e


if [ "x$SAFE_MODE" == "xTrue" ]; then

    echo ""
    echo "[INFO] Not executing entrypoint as we are in safe mode, just opening a Bash shell."
    exec /bin/bash

else

    echo ""
    echo "[INFO] Executing entrypoint..."
    
#echo "[INFO] Sourcing env in /opt/lofarsoft/lofarinit.sh..."
source /opt/lofarsoft/lofarinit.sh
    if [ "x$GUI" == "xTrue" ]; then
	    if [ "x$BASE_PORT" == "x" ]; then
	        echo "[INFO] No task base port set, will set noVNC port 8590 and VNC port 5900 with desktop id \"0\""  
	    else 
	        echo "[INFO] Task base port set, will set noVNC port $BASE_PORT and noVNC port $(($BASE_PORT+1)) with desktop id \"$(($BASE_PORT-5900+1))\""
	    fi
    fi
    
    #---------------------
    #   Setup home
    #---------------------

    if [ -f "/home/lofar/.initialized" ]; then
        :
    else
        echo "[INFO] Setting up home"
        mkdir -p /home/lofar

        # Copy over vanilla home contents
        for x in /lofar_home_vanilla/* /lofar_home_vanilla/.[!.]* /lofar_home_vanilla/..?*; do
            if [ -e "$x" ]; then cp -a "$x" /home/lofar/; fi
        done
        
        # Mark as initialized
        touch /home/lofar/.initialized
    fi
    

    #---------------------
    #   Save env
    #---------------------
    echo "[INFO] Dumping env"
    
    # Save env vars for later usage (e.g. ssh)
    
    env | \
    while read env_var; do
      if [[ $env_var == HOME\=* ]]; then
          : # Skip HOME var
      elif [[ $env_var == PWD\=* ]]; then
          : # Skip PWD var
      else
          echo "export $env_var" >> /tmp/env.sh
      fi
    done
    
    #---------------------
    #   VNC Password
    #---------------------
    if [ "x$GUI" == "xTrue" ]; then
	    if [ "x$AUTH_PASS" != "x" ]; then
	        echo "[INFO] Setting up VNC password..."
	        mkdir -p /home/lofar/.vnc
	        /opt/tigervnc/usr/bin/vncpasswd -f <<< $AUTH_PASS > /home/lofar/.vnc/passwd
	        chmod 600 /home/lofar/.vnc/passwd
	        export VNC_AUTH=True
	    else
	        echo "[INFO] Not setting up any VNC password"
	            
	    fi
    fi
    
	echo "[INFO] Creating /tmp/lofarhome to be used as lofar home"
	mkdir /tmp/lofarhome
	
echo "[INFO] Initialising /tmp/lofarhome with configuration files"
cp -aT /home/vanilla_lofar /tmp/lofarhome
	echo "[INFO] Initializing /tmp/lofarhome with configuration files"
	cp -aT /lofar_home_vanilla /tmp/lofarhome
	
	echo "[INFO] Moving to /home/lofar and setting as home"
	cd /home/lofar
@@ -23,15 +91,22 @@ export HOME=/home/lofar
	echo "[INFO] Setting new prompt @$CONTAINER_NAME container"
	echo 'export PS1="${debian_chroot:+($debian_chroot)}\u@$CONTAINER_NAME@\h:\w\$ "' >> /tmp/lofarhome/.bashrc

    echo "[INFO] Sourcing env in /opt/lofarsoft/lofarinit.sh..."
    source /opt/lofarsoft/lofarinit.sh
    	
			
    # Set entrypoint command
	if [ "x$@" == "x" ]; then
	    if [ "x$GUI" == "xTrue" ]; then
            COMMAND="supervisord -c /etc/supervisor/supervisord.conf"
	    else
	        COMMAND="/bin/bash"
	    fi
	else
	    COMMAND="$@"
	fi
	


    # Start!
	echo -n "[INFO] Will execute entrypoint command: "
	echo $COMMAND
@@ -51,3 +126,4 @@ echo ""
	
	exec $COMMAND

fi
+9.96 KiB
Loading image diff...
+4 −0
Original line number Diff line number Diff line
[app] (name=fbrun)
  [Position]	(WINCENTER)	{0 0}
  [Layer]	{2}
[end]
+76 −0
Original line number Diff line number Diff line
session.screen0.tabs.usePixmap:	true
session.screen0.tabs.maxOver:	false
session.screen0.tabs.intitlebar:	true
session.screen0.clientMenu.usePixmap:	true
session.screen0.iconbar.usePixmap:	true
session.screen0.iconbar.iconTextPadding:	10
session.screen0.iconbar.iconWidth:	128
session.screen0.iconbar.alignment:	Relative
session.screen0.iconbar.mode:	{static groups} (workspace)
session.screen0.toolbar.visible:	true
session.screen0.toolbar.height:	0
session.screen0.toolbar.onhead:	1
session.screen0.toolbar.widthPercent:	100
session.screen0.toolbar.alpha:	255
session.screen0.toolbar.maxOver:	false
session.screen0.toolbar.autoHide:	false
session.screen0.toolbar.layer:	Dock
session.screen0.toolbar.placement:	BottomCenter
#session.screen0.toolbar.tools:	prevworkspace, workspacename, nextworkspace, clock, prevwindow, nextwindow, iconbar, systemtray
session.screen0.toolbar.tools: iconbar, systemtray
session.screen0.menu.alpha:	255
session.screen0.tab.placement:	TopLeft
session.screen0.tab.width:	64
session.screen0.titlebar.left:	Stick 
session.screen0.titlebar.right:	Minimize Maximize Close 
session.screen0.window.focus.alpha:	255
session.screen0.window.unfocus.alpha:	255
session.screen0.slit.alpha:	255
session.screen0.slit.maxOver:	false
session.screen0.slit.placement:	RightBottom
session.screen0.slit.autoHide:	false
session.screen0.slit.acceptKdeDockapps:	true
session.screen0.slit.onhead:	0
session.screen0.slit.layer:	Dock
session.screen0.colPlacementDirection:	TopToBottom
session.screen0.tabFocusModel:	ClickToTabFocus
session.screen0.autoRaise:	true
session.screen0.maxDisableMove:	false
session.screen0.edgeSnapThreshold:	10
session.screen0.tooltipDelay:	500
session.screen0.opaqueMove:	true
session.screen0.windowPlacement:	RowMinOverlapPlacement
session.screen0.focusNewWindows:	true
session.screen0.clickRaises:	true
session.screen0.maxDisableResize:	false
session.screen0.windowMenu:	/home/lofar/.fluxbox/windowmenu
session.screen0.allowRemoteActions:	false
session.screen0.strftimeFormat:	%d %b, %a %02k:%M:%S
session.screen0.focusSameHead:	false
session.screen0.workspacewarping:	true
session.screen0.fullMaximization:	false
session.screen0.defaultDeco:	NORMAL
session.screen0.noFocusWhileTypingDelay:	0
session.screen0.menuDelay:	200
session.screen0.workspaceNames:	Workspace 1,Workspace 2,Workspace 3,Workspace 4,
session.screen0.rowPlacementDirection:	LeftToRight
session.screen0.focusModel:	ClickFocus
session.screen0.showwindowposition:	false
session.screen0.maxIgnoreIncrement:	true
session.screen0.workspaces:	1
session.styleOverlay:	/home/lofar/.fluxbox/overlay
session.keyFile:	~/.fluxbox/keys
session.cacheMax:	200
session.tabsAttachArea:	Window
session.slitlistFile:	/home/lofar/.fluxbox/slitlist
session.forcePseudoTransparency:	false
session.tabPadding:	0
session.colorsPerChannel:	4
session.styleFile:	/usr/share/fluxbox/styles//ubuntu-light
session.autoRaiseDelay:	250
session.cacheLife:	5
session.appsFile:	/home/lofar/.fluxbox/apps
session.ignoreBorder:	false
session.configVersion:	13
session.doubleClickInterval:	250
session.menuFile:	~/.fluxbox/menu
Loading