1+ #! /bin/bash
2+
3+ echo " [Info] AMPStart for Docker - v23.07.1"
4+ INSTALLED_DEPS_FILE=" /AMP/InstalledDeps.json"
5+ ARCH=$( uname -m)
6+
7+ if [ -z " ${AMPUSERID} " ]; then
8+ echo " [Info] This docker image cannot be used directly by itself - it must be started by ampinstmgr"
9+ exit 100
10+ fi
11+
12+ # Check if the AMP user already exists
13+ getent passwd amp & > /dev/null
14+
15+ if [ " $? " == " 0" ]; then
16+ echo " [Info] AMP user already exists, continuing..."
17+ else
18+ echo " [Info] Performing first-time container setup..."
19+ groupadd -r -g $AMPGROUPID amp > /dev/null
20+ useradd -m -d /home/amp -s /bin/bash -c " AMP Process User" -u $AMPUSERID -g $AMPGROUPID amp > /dev/null
21+ touch /home/amp/.gitconfig
22+ chown -R amp:amp /home/amp 2> /dev/null
23+ usermod -aG tty amp
24+ chmod +x /AMP/AMP_Linux_$ARCH
25+ echo " [Info] Container setup complete."
26+ fi
27+
28+ if [ -f " $INSTALLED_DEPS_FILE " ]; then
29+ INSTALLED_DEPS=$( jq -r ' .[]' $INSTALLED_DEPS_FILE )
30+ else
31+ INSTALLED_DEPS=" "
32+ echo " []" > $INSTALLED_DEPS_FILE
33+ fi
34+
35+ REQUIRED_DEPS=$( echo $AMP_CONTAINER_DEPS | jq -r ' .[]' )
36+
37+ DEPS_TO_INSTALL=()
38+ for DEP in $REQUIRED_DEPS ; do
39+ if ! [[ $INSTALLED_DEPS =~ $DEP ]]; then
40+ DEPS_TO_INSTALL+=($DEP )
41+ fi
42+ done
43+
44+ if [ ${# DEPS_TO_INSTALL[@]} -ne 0 ]; then
45+ echo " [Info] Installing dependencies..."
46+ apt-get update
47+ apt-get install -y --allow-downgrades ${DEPS_TO_INSTALL[@]}
48+ apt-get clean
49+ rm -rf /var/lib/apt/lists/*
50+ echo " [Info] Installation complete."
51+ else
52+ echo " [Info] No missing dependencies to install."
53+ fi
54+
55+ if [ -n " $AMP_MOUNTPOINTS " ]; then
56+ echo " [Info] Updating mountpoint permissions..."
57+ IFS=' :' read -r -a dirs <<< " $AMP_MOUNTPOINTS"
58+
59+ for dir in " ${dirs[@]} " ; do
60+ echo " [Info] - Updating $dir ..."
61+ chown -R amp:amp " $dir "
62+ done
63+ fi
64+
65+ export AMPHOSTPLATFORM
66+ export AMP_CONTAINER
67+ export AMPMEMORYLIMIT
68+ export AMPSWAPLIMIT
69+ export AMPCONTAINERCPUS
70+ export AMP_CONTAINER_HOST_NETWORK
71+
72+ ARGS=$@
73+ exec su -l -w AMPHOSTPLATFORM,AMP_CONTAINER,AMPMEMORYLIMIT,AMP_CONTAINER_HOST_NETWORK,AMPSWAPLIMIT,AMPCONTAINERCPUS -c " ampinstmgr --sync-certs; cd /AMP; HOME=/home/amp /AMP/AMP_Linux_$ARCH ${ARGS} ; exit $? " -- amp
74+ exit $?
0 commit comments