658d8e3abd951a5ae0cdb96db48f431eae0ed0fb
[plcapi.git] / tests / ci / docker / entrypoint.sh
1 #!/bin/sh
2
3 # @todo make username flexible
4
5 USERNAME=test
6
7 echo "[$(date)] Bootstrapping the Test container..."
8
9 clean_up() {
10     # Perform program exit housekeeping
11
12     echo "[$(date)] Stopping the Web server"
13     service apache2 stop
14
15     echo "[$(date)] Stopping Privoxy"
16     service privoxy stop
17
18     echo "[$(date)] Stopping FPM"
19     service php-fpm stop
20
21     echo "[$(date)] Exiting"
22     exit
23 }
24
25 # Fix UID & GID for user
26
27 echo "[$(date)] Fixing filesystem permissions..."
28
29 ORIGPASSWD=$(cat /etc/passwd | grep "^${USERNAME}:")
30 ORIG_UID=$(echo "$ORIGPASSWD" | cut -f3 -d:)
31 ORIG_GID=$(echo "$ORIGPASSWD" | cut -f4 -d:)
32 CONTAINER_USER_HOME=$(echo "$ORIGPASSWD" | cut -f6 -d:)
33 CONTAINER_USER_UID=${CONTAINER_USER_UID:=$ORIG_UID}
34 CONTAINER_USER_GID=${CONTAINER_USER_GID:=$ORIG_GID}
35
36 if [ "$CONTAINER_USER_UID" != "$ORIG_UID" -o "$CONTAINER_USER_GID" != "$ORIG_GID" ]; then
37     groupmod -g "$CONTAINER_USER_GID" "${USERNAME}"
38     usermod -u "$CONTAINER_USER_UID" -g "$CONTAINER_USER_GID" "${USERNAME}"
39 fi
40 if [ $(stat -c '%u' "${CONTAINER_USER_HOME}") != "${CONTAINER_USER_UID}" -o $(stat -c '%g' "${CONTAINER_USER_HOME}") != "${CONTAINER_USER_GID}" ]; then
41     chown "${CONTAINER_USER_UID}":"${CONTAINER_USER_GID}" "${CONTAINER_USER_HOME}"
42     chown -R "${CONTAINER_USER_UID}":"${CONTAINER_USER_GID}" "${CONTAINER_USER_HOME}"/.*
43 fi
44
45 echo "[$(date)] Fixing apache configuration..."
46
47 sed -e "s?^export TESTS_ROOT_DIR=.*?export TESTS_ROOT_DIR=${TESTS_ROOT_DIR}?g" --in-place /etc/apache2/envvars
48
49 # @todo set as well php-fpm user/group ?
50
51 echo "[$(date)] Running Composer..."
52
53 sudo test -c "cd /home/test && composer install"
54
55 trap clean_up TERM
56
57 echo "[$(date)] Starting FPM..."
58 service php-fpm start
59
60 echo "[$(date)] Starting the Web server..."
61 service apache2 start
62
63 echo "[$(date)] Starting Privoxy..."
64 service privoxy start
65
66 tail -f /dev/null &
67 child=$!
68 wait "$child"