Skip to content
Commits on Source (2)
......@@ -5,6 +5,7 @@ set -e
cd system && ./build.sh && cd ..
cd extras && ./build.sh && cd ..
cd astro && ./build.sh && cd ..
cd entrypoint && ./build.sh && cd ..
# Use the astro image as lofar base
docker tag lofarit_base_astro lofarit_base
docker tag lofarit_base_entrypoint lofarit_base
FROM lofarit_base_astro:latest
MAINTAINER Giuliano Taffoni <giuliano.taffoni@inaf.it>
ENV CONTAINER_NAME='lofarit_base_entrypoint'
#=============================
# Switch to root for install
#=============================
USER root
# Copy entrypoint
COPY entrypoint.sh /
# Give right permissions
RUN chmod 755 /entrypoint.sh
# Set entrypoint
ENTRYPOINT ["/entrypoint.sh"]
#=============================
# Switch to metauser
#=============================
USER metauser
#!/bin/bash
docker build ./ -t lofarit_base_entrypoint
#!/bin/bash
# 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..."
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/metauser/.initialized" ]; then
:
else
echo "[INFO] Setting up home"
mkdir -p /home/metauser
# Copy over vanilla home contents
for x in /metauser_home_vanilla/* /metauser_home_vanilla/.[!.]* /metauser_home_vanilla/..?*; do
if [ -e "$x" ]; then cp -a "$x" /home/metauser/; fi
done
# Mark as initialized
touch /home/metauser/.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/metauser/.vnc
/opt/tigervnc/usr/bin/vncpasswd -f <<< $AUTH_PASS > /home/metauser/.vnc/passwd
chmod 600 /home/metauser/.vnc/passwd
export VNC_AUTH=True
else
echo "[INFO] Not setting up any VNC password"
fi
fi
echo "[INFO] Creating /tmp/metauserhome to be used as metauser home"
mkdir /tmp/metauserhome
echo "[INFO] Initializing /tmp/metauserhome with configuration files"
cp -aT /metauser_home_vanilla /tmp/metauserhome
echo "[INFO] Moving to /home/metauser and setting as home"
cd /home/metauser
export HOME=/home/metauser
echo "[INFO] Setting new prompt @$CONTAINER_NAME container"
echo 'export PS1="${debian_chroot:+($debian_chroot)}\u@$CONTAINER_NAME@\h:\w\$ "' >> /tmp/metauserhome/.bashrc
echo "[INFO] Sourcing env in /opt/lofar/init.sh..."
source /opt/lofar/init.sh
# Set entrypoint command
if [ "x$@" == "x" ]; then
COMMAND="/bin/bash"
else
COMMAND="$@"
fi
# Start!
echo -n "[INFO] Will execute entrypoint command: "
echo $COMMAND
echo ""
echo "=============================================================="
echo ""
echo " Welcome to the LOFAR-IT $CONTAINER_NAME container!"
echo ""
echo "=============================================================="
echo ""
echo "You are now in /home/metauser with write access as user \"$(whoami)\"."
echo ""
echo "Remember that contents inside this container, unless stored"
echo "on a persistent volume mounted from you host machine, will"
echo "be wiped out when exiting the container."
echo ""
exec $COMMAND
fi
#!/bin/bash
docker pull git.ia2.inaf.it:5050/lofarit/containers/lofarit_base_entrypoint
if [ $? -eq 0 ]
then
echo ""
echo "Pulled lofarit/containers/lofarit_base_entrypoint. To use it for building other images in this repository, retag it as:"
echo " $ docker tag git.ia2.inaf.it:5050/lofarit/containers/lofarit_base_entrypoint lofarit_base_entrypoint"
echo ""
fi
#!/bin/bash
docker push git.ia2.inaf.it:5050/lofarit/containers/lofarit_base_entrypoint
#!/bin/bash
docker tag lofarit_base_entrypoint git.ia2.inaf.it:5050/lofarit/containers/lofarit_base_entrypoint
......@@ -94,7 +94,7 @@ RUN sed -i 's/^# %wheel/%wheel/' /etc/sudoers
RUN mv /home/metauser /metauser_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/metauser (for Singularity)
# to copy over the /metauser_home_vanilla into /home/metauser (for Singularity)
RUN chmod 777 /home
......