Skip to content
Snippets Groups Projects
Select Git revision
  • aa23e73430b9f2dc098c5b86f04d298590de3e87
  • main default
  • develop
  • feature/arch_support
  • feature/global_refactoring
  • v1.0.0
6 results

entrypoint.sh

Blame
  • entrypoint.sh 1.82 KiB
    #!/bin/bash
    
    # Exit on any error. More complex thing could be done in future
    # (see https://stackoverflow.com/questions/4381618/exit-a-script-on-error)
    set -e
    
    echo ""
    echo "[INFO] Executing entrypoint..."
    
    #---------------------
    #   Setup home
    #---------------------
    
    # First try without sudo (Singularity with --writable-tmpfs), then sudo (Docker)
    echo "[INFO] Setting up home"
    
    # Get immune to -e inside the curly brackets
    {
      cp -a /metauser_vanilla /metauser &> /dev/null
      EXIT_CODE=$?
    } || true
    
    # Check if the above failed and we thus have to use sudo
    if [ "$EXIT_CODE" != "0" ]; then
        #echo "Using sudo"
        sudo cp -a /metauser_vanilla /metauser
    fi
    
    # Manually set home (mainly for Singularity)
    echo "[INFO] Setting up HOME env var"
    export HOME=/metauser
    cd /metauser
    
    #---------------------
    #   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
    
    #---------------------
    #   Password
    #---------------------
    
    if [ "x$AUTH_PASS" != "x" ]; then
        echo "[INFO] Setting up VNC password..."
        mkdir -p /metauser/.vnc
        /opt/tigervnc/usr/bin/vncpasswd -f <<< $AUTH_PASS > /metauser/.vnc/passwd
        chmod 600 /metauser/.vnc/passwd
        export VNC_AUTH=True
    else
        echo "[INFO] Not setting up any VNC password"
            
    fi
    
    
    #---------------------
    #  Entrypoint command
    #---------------------
    
    if [ "$@x" == "x" ]; then
        DEFAULT_COMMAND="supervisord -c /etc/supervisor/supervisord.conf"
        echo -n "[INFO] Executing default entrypoint command: "
        echo $DEFAULT_COMMAND
        exec $DEFAULT_COMMAND
    else
        echo -n "[INFO] Executing entrypoint command: "
        echo $@
        exec $@
    fi