65 lines
2.5 KiB
Bash
Executable File
65 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# This script rebuilds the whole environment and starts a new container
|
|
|
|
# 1. ensure this script is run from the project's root, not the faye directory
|
|
pwd_dirname=$(basename $(pwd))
|
|
script_dirname="faye"
|
|
arch=$(uname)
|
|
if [ $arch == "Darwin" ]; then
|
|
certs_dir="~/.mkcert"
|
|
else
|
|
certs_dir="/etc/letsencrypt/live/mozo.bar"
|
|
fi
|
|
#certs_dir="/home/benjamin/mozo/mozo-user/ssl"
|
|
if [ "$pwd_dirname" == "$script_dirname" ]; then
|
|
echo "PWD DIRNAME: "$pwd_dirname;
|
|
echo "You must run this script from the project's root dir (../) for the Dockerfile to have access to the configs to COPY";
|
|
exit 1;
|
|
fi
|
|
|
|
if [ -d "$certs_dir" ]; then
|
|
echo "Found certificates directory, copy it to local for inclusion in the docker build"
|
|
rm -rf $script_dirname/ssl
|
|
# Note the -L option for copy is required, since the target are symbolic links and we want the real files
|
|
#if [ -f "$certs_dir/localhost-key.pem" ]; then
|
|
if [ $arch == "Darwin" ]; then
|
|
echo "Using Darwin localhost certificate copy https://medium.com/@matayoshi.mariano/how-to-add-ssl-to-your-localhost-with-puma-37a66a649f29"
|
|
mkdir $script_dirname/ssl
|
|
cp "$certs_dir/localhost-key.pem" $script_dirname/ssl/privkey.pem
|
|
cp "$certs_dir/localhost.pem" $script_dirname/ssl/fullchain.pem
|
|
cp "$certs_dir/rootCA-key.pem" $script_dirname/ssl/rootCA-key.pem
|
|
cp "$certs_dir/rootCA.pem" $script_dirname/ssl/rootCA.pem
|
|
#cp -r "$certs_dir" "$script_dirname/ssl"
|
|
else
|
|
echo "Using letsencrypt folder copy"
|
|
# copy full directory, assuming letsencrypt
|
|
cp -rL "$certs_dir" "$script_dirname/ssl"
|
|
fi
|
|
else
|
|
echo "Certs dir not found at: $certs_dir"
|
|
fi
|
|
|
|
# 2. stop and remove all running/existing containers
|
|
docker rm $(docker stop $(docker ps -a -q --filter ancestor=mozo_faye))
|
|
|
|
# 3. remove the previously built images
|
|
docker rmi mozo_faye
|
|
|
|
# 4. rebuild a fresh image from the latest code
|
|
docker build -f faye/Dockerfile -t mozo_faye .
|
|
|
|
# debug docker and enter the bash:
|
|
# docker run -t -i --rm mozo_faye bash
|
|
|
|
# 5. Spin up the counter container from the generated image
|
|
if [ $arch == "Darwin" ]; then
|
|
echo "Running the created image using the Mac Darwin port exposing"
|
|
docker run -p 9296:9296 --restart unless-stopped --detach --name=mozo_faye mozo_faye
|
|
else
|
|
echo "Running the created image using network=host"
|
|
docker run --network=host --restart unless-stopped --detach --name=mozo_faye mozo_faye
|
|
fi
|
|
|
|
# To just start the container created through al these steps without rebuilding them:
|
|
# docker container start $(docker ps -a -q --filter ancestor=mozo_faye)
|