Modify shellhttpd ContainerΒΆ
To change the environment values on the fly without restarting the
application, you have to edit the httpd.sh file.
Open a new terminal in your host machine and find the container folder used in the previous tutorial.
cd containers/
Edit the file httpd.sh according to the example below:
gedit shellhttpd/httpd.sh
shellhttpd/httpd.sh:
#!/bin/sh -e
PORT="${PORT-8080}"
MSG="${MSG-FoundriesFactory}"
while true; do
[ -f /home/shellhttpd/shellhttpd.conf ] && . /home/shellhttpd/shellhttpd.conf
echo "PORT=$PORT"
echo "MSG=$MSG"
RESPONSE="HTTP/1.1 200 OK\r\n\r\n${MSG}\r\n"
echo -en "$RESPONSE" | nc -w 5 -l -p "${PORT}" || true
echo "= $(date) ============================="
done
The first line in the while loop will check for a file /home/shellhttpd/shellhttpd.conf and
if it exists it will load the variables specified in the file.
Then, echo will print the values of PORT and MSG.
RESPONSE will be redefined with the new MSG value.
Finally, -w 5 configures nc to stop listening every 5 seconds.
This allows the script to reload new variables.