From 2e6a49fd05062715c838187234c14d627afbea87 Mon Sep 17 00:00:00 2001 From: stephb9959 Date: Mon, 25 Jan 2021 11:25:35 -0800 Subject: [PATCH] Adding docker building scripts --- Dockerfile-manager | 48 ++++++++++++++++++++ Dockerfile-monitor | 45 ++++++++++++++++++ Dockerfile-node | 44 ++++++++++++++++++ docker_build.sh | 3 ++ docker_config.sh => docker_config_manager.sh | 0 docker_config_monitor.sh | 7 +++ docker_config_node.sh | 7 +++ docker_run_manager.sh | 3 ++ docker_run_monitor.sh | 3 ++ docker_run_node.sh | 3 ++ docker_start.sh | 2 +- docker_start_non_manager.sh | 5 ++ 12 files changed, 169 insertions(+), 1 deletion(-) create mode 100644 Dockerfile-manager create mode 100644 Dockerfile-monitor create mode 100644 Dockerfile-node create mode 100755 docker_build.sh rename docker_config.sh => docker_config_manager.sh (100%) create mode 100755 docker_config_monitor.sh create mode 100755 docker_config_node.sh create mode 100755 docker_run_manager.sh create mode 100755 docker_run_monitor.sh create mode 100755 docker_run_node.sh create mode 100755 docker_start_non_manager.sh diff --git a/Dockerfile-manager b/Dockerfile-manager new file mode 100644 index 0000000..277609a --- /dev/null +++ b/Dockerfile-manager @@ -0,0 +1,48 @@ +#Build stage 0 + +FROM erlang:alpine + +RUN apk update && \ + apk add --no-cache \ + bash util-linux coreutils \ + curl \ + make cmake gcc g++ libstdc++ libgcc git \ + zlib-dev && \ + touch /usr/include/sys/vtimes.h + +RUN mkdir /buildroot +WORKDIR /buildroot +RUN git clone https://github.com/telecominfraproject/wlan-cloud-loadsim + + +WORKDIR wlan-cloud-loadsim +RUN git pull +RUN make +RUN ./docker_config_manager.sh + +RUN mkdir /app_data +RUN mkdir /app_data/mnesia +RUN mkdir /app_data/logs + +#build stage 1 +FROM alpine + +RUN apk update && \ + apk add --no-cache openssl && \ + apk add --no-cache ncurses-libs && \ + apk add --no-cache erlang && \ + apk add --no-cache \ + bash util-linux coreutils \ + curl \ + make cmake gcc g++ libstdc++ libgcc git \ + zlib-dev && \ + touch /usr/include/sys/vtimes.h + +COPY --from=0 /buildroot/wlan-cloud-loadsim /owls + +EXPOSE 9090 +EXPOSE 4369 + +ENTRYPOINT /owls/docker_start.sh + + diff --git a/Dockerfile-monitor b/Dockerfile-monitor new file mode 100644 index 0000000..317583c --- /dev/null +++ b/Dockerfile-monitor @@ -0,0 +1,45 @@ +#Build stage 0 + +FROM erlang:alpine + +RUN apk update && \ + apk add --no-cache \ + bash util-linux coreutils \ + curl \ + make cmake gcc g++ libstdc++ libgcc git \ + zlib-dev && \ + touch /usr/include/sys/vtimes.h + +RUN mkdir /buildroot +WORKDIR /buildroot +RUN git clone https://github.com/telecominfraproject/wlan-cloud-loadsim + + +WORKDIR wlan-cloud-loadsim +RUN git pull +RUN make +RUN ./docker_config_monitor.sh + +RUN mkdir /app_data +RUN mkdir /app_data/mnesia +RUN mkdir /app_data/logs + +#build stage 1 +FROM alpine + +RUN apk update && \ + apk add --no-cache openssl && \ + apk add --no-cache ncurses-libs && \ + apk add --no-cache erlang && \ + apk add --no-cache \ + bash util-linux coreutils \ + curl \ + make cmake gcc g++ libstdc++ libgcc git \ + zlib-dev && \ + touch /usr/include/sys/vtimes.h + +COPY --from=0 /buildroot/wlan-cloud-loadsim /owls + +ENTRYPOINT /owls/docker_start_non_manager.sh + + diff --git a/Dockerfile-node b/Dockerfile-node new file mode 100644 index 0000000..4f0d673 --- /dev/null +++ b/Dockerfile-node @@ -0,0 +1,44 @@ +#Build stage 0 + +FROM erlang:alpine + +RUN apk update && \ + apk add --no-cache \ + bash util-linux coreutils \ + curl \ + make cmake gcc g++ libstdc++ libgcc git \ + zlib-dev && \ + touch /usr/include/sys/vtimes.h + +RUN mkdir /buildroot +WORKDIR /buildroot +RUN git clone https://github.com/telecominfraproject/wlan-cloud-loadsim + + +WORKDIR wlan-cloud-loadsim +RUN git pull +RUN make +RUN ./docker_config_node.sh + +RUN mkdir /app_data +RUN mkdir /app_data/logs + +#build stage 1 +FROM alpine + +RUN apk update && \ + apk add --no-cache openssl && \ + apk add --no-cache ncurses-libs && \ + apk add --no-cache erlang && \ + apk add --no-cache \ + bash util-linux coreutils \ + curl \ + make cmake gcc g++ libstdc++ libgcc git \ + zlib-dev && \ + touch /usr/include/sys/vtimes.h + +COPY --from=0 /buildroot/wlan-cloud-loadsim /owls + +ENTRYPOINT /owls/docker_start_non_manager.sh + + diff --git a/docker_build.sh b/docker_build.sh new file mode 100755 index 0000000..72e0a82 --- /dev/null +++ b/docker_build.sh @@ -0,0 +1,3 @@ +docker build --no-cache --tag tip-owls-manager -f Dockerfile-manager +docker build --no-cache --tag tip-owls-node -f Dockerfile-node +docker build --no-cache --tag tip-owls-monitor -f Dockerfile-monitor diff --git a/docker_config.sh b/docker_config_manager.sh similarity index 100% rename from docker_config.sh rename to docker_config_manager.sh diff --git a/docker_config_monitor.sh b/docker_config_monitor.sh new file mode 100755 index 0000000..d9d3a5b --- /dev/null +++ b/docker_config_monitor.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# This file is used from within the docker build script to copy the proper configurations for the manager + +cp priv/templates/simmonitor.config.template.docker config/sys.config +cp priv/templates/simmonitor.args.template.docker config/vm.args + diff --git a/docker_config_node.sh b/docker_config_node.sh new file mode 100755 index 0000000..25714b9 --- /dev/null +++ b/docker_config_node.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# This file is used from within the docker build script to copy the proper configurations for the manager + +cp priv/templates/simnode.config.template.docker config/sys.config +cp priv/templates/simnode.args.template.docker config/vm.args + diff --git a/docker_run_manager.sh b/docker_run_manager.sh new file mode 100755 index 0000000..05db550 --- /dev/null +++ b/docker_run_manager.sh @@ -0,0 +1,3 @@ +mkdir docker_logs +# docker run -it -p 9091:9090 --init --volume="$PWD/ssl:/etc/ssl/certs" --volume="$PWD/docker_logs:/app_data/logs" -e ERL_NODE_NAME="simmanager1@renegademac.arilia.com" tip-owls-1 +docker run -d -p 9091:9090 --init --volume="$PWD/ssl:/etc/ssl/certs" --volume="$PWD/docker_logs:/app_data/logs" -e ERL_NODE_NAME="simmanager1@renegademac.arilia.com" tip-owls-manager \ No newline at end of file diff --git a/docker_run_monitor.sh b/docker_run_monitor.sh new file mode 100755 index 0000000..cf6a54d --- /dev/null +++ b/docker_run_monitor.sh @@ -0,0 +1,3 @@ +mkdir docker_logs +# docker run -it -p 9091:9090 --init --volume="$PWD/ssl:/etc/ssl/certs" --volume="$PWD/docker_logs:/app_data/logs" -e ERL_NODE_NAME="simmanager1@renegademac.arilia.com" tip-owls-1 +docker run -d -p 9091:9090 --init --volume="$PWD/ssl:/etc/ssl/certs" --volume="$PWD/docker_logs:/app_data/logs" -e ERL_NODE_NAME="simmanager1@renegademac.arilia.com" tip-owls-monitor \ No newline at end of file diff --git a/docker_run_node.sh b/docker_run_node.sh new file mode 100755 index 0000000..a25b9ab --- /dev/null +++ b/docker_run_node.sh @@ -0,0 +1,3 @@ +mkdir docker_logs +# docker run -it -p 9091:9090 --init --volume="$PWD/ssl:/etc/ssl/certs" --volume="$PWD/docker_logs:/app_data/logs" -e ERL_NODE_NAME="simmanager1@renegademac.arilia.com" tip-owls-1 +docker run -d -p 9091:9090 --init --volume="$PWD/ssl:/etc/ssl/certs" --volume="$PWD/docker_logs:/app_data/logs" -e ERL_NODE_NAME="simmanager1@renegademac.arilia.com" tip-owls-node \ No newline at end of file diff --git a/docker_start.sh b/docker_start.sh index 9678cb0..7846e3d 100755 --- a/docker_start.sh +++ b/docker_start.sh @@ -2,4 +2,4 @@ # This file in invoked from within docker to start the application. It should not be used otherwise. cd /owls -erl -config config/sys.config -args_file config/vm.args -name $ERL_NODE_NAME -noinput -noshell -pa deps/*/ebin -pa ebin \ No newline at end of file +erl -config config/sys.config -args_file config/vm.args -name $ERL_NODE_NAME -noinput -noshell -detached -pa deps/*/ebin -pa ebin \ No newline at end of file diff --git a/docker_start_non_manager.sh b/docker_start_non_manager.sh new file mode 100755 index 0000000..7846e3d --- /dev/null +++ b/docker_start_non_manager.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +# This file in invoked from within docker to start the application. It should not be used otherwise. +cd /owls +erl -config config/sys.config -args_file config/vm.args -name $ERL_NODE_NAME -noinput -noshell -detached -pa deps/*/ebin -pa ebin \ No newline at end of file