Initial commit.
This commit is contained in:
commit
d133dcadab
56
create.sh
Executable file
56
create.sh
Executable file
@ -0,0 +1,56 @@
|
||||
#!/bin/bash
|
||||
#Absolute path to this script
|
||||
SCRIPT=$(readlink -f $0)
|
||||
#Absolute path this script is in
|
||||
SCRIPTPATH=$(dirname $SCRIPT)
|
||||
STACK=$(basename "$SCRIPTPATH")
|
||||
export RUN_DIRECTORY="/usr/local/docker-mounted-files/${STACK}"
|
||||
cd "$SCRIPTPATH"
|
||||
source vars
|
||||
|
||||
sudo docker-compose down
|
||||
sudo rm -rf "${RUN_DIRECTORY}"
|
||||
sudo mkdir -p "${RUN_DIRECTORY}"
|
||||
sudo chmod a+rx "${RUN_DIRECTORY}"
|
||||
|
||||
cd "${RUN_DIRECTORY}"
|
||||
test -z $1 || HOST="_$1"
|
||||
test -z $2 || INSTANCE="_$2"
|
||||
test -z $KEY && { echo "KEY is not defined."; exit 1; }
|
||||
|
||||
if ! test -f ~/secrets.tar.gz.enc
|
||||
then
|
||||
curl -o ~/secrets.tar.gz.enc "https://${CLOUD_SERVER}/s/${KEY}/download?path=%2F&files=secrets.tar.gz.enc"
|
||||
if ! test -f ~/secrets.tar.gz.enc
|
||||
then
|
||||
echo "ERROR: ~/secrets.tar.gz.enc not found, exiting."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
openssl enc -aes-256-cbc -d -in ~/secrets.tar.gz.enc \
|
||||
| sudo tar -zxv --strip 2 secrets/${STACK}${HOST}${INSTANCE}/conf.yml \
|
||||
|| { echo "Could not extract from secrets archive, exiting."; rm -f ~/secrets.tar.gz.enc; exit 1; }
|
||||
sudo chown root. conf.yml
|
||||
|
||||
cd "$SCRIPTPATH"
|
||||
for NETWORK in metricsnet mysqlnet
|
||||
do
|
||||
sudo docker network inspect ${NETWORK} &> /dev/null && continue
|
||||
sudo docker network create ${NETWORK}
|
||||
sudo docker network inspect ${NETWORK} &> /dev/null || \
|
||||
{ echo "ERROR: could not create network ${NETWORK}, exiting."; exit 1; }
|
||||
done
|
||||
|
||||
IMAGE="store-metrics-in-db"
|
||||
REPO="docker-store-metrics-in-db"
|
||||
unset VERSION_STORE_METRICS_IN_DB
|
||||
export VERSION_STORE_METRICS_IN_DB=$(git ls-remote https://${GIT_SERVER}/yohan/${REPO}.git| head -1 | cut -f 1|cut -c -10)
|
||||
|
||||
mkdir -p ~/build
|
||||
git clone https://${GIT_SERVER}/yohan/${REPO}.git ~/build/${REPO}
|
||||
sudo docker build -t ${IMAGE}:$VERSION_STORE_METRICS_IN_DB ~/build/${REPO}
|
||||
|
||||
sudo -E bash -c 'docker-compose up --no-start --force-recreate'
|
||||
|
||||
rm -rf ~/build
|
31
docker-compose.yml
Normal file
31
docker-compose.yml
Normal file
@ -0,0 +1,31 @@
|
||||
version: "2.1"
|
||||
|
||||
services:
|
||||
|
||||
store-metrics-in-db:
|
||||
container_name: store-metrics-in-db
|
||||
image: store-metrics-in-db:$VERSION_STORE_METRICS_IN_DB
|
||||
networks:
|
||||
- mysqlnet
|
||||
- metricsnet
|
||||
ports:
|
||||
- "3001:3001/tcp"
|
||||
expose:
|
||||
- "3001/tcp"
|
||||
environment:
|
||||
FLASK_APP: api.py
|
||||
#FLASK_ENV: development
|
||||
FLASK_ENV: production
|
||||
FLASK_RUN_HOST: "0.0.0.0"
|
||||
FLASK_RUN_PORT: 3001
|
||||
volumes:
|
||||
- /mnt/volumes/store-metrics-in-db/data/migrations:/root/migrations:z
|
||||
- ${RUN_DIRECTORY}/conf.yml:/root/conf.yml
|
||||
|
||||
networks:
|
||||
|
||||
mysqlnet:
|
||||
external: true
|
||||
|
||||
metricsnet:
|
||||
external: true
|
24
install.sh
Executable file
24
install.sh
Executable file
@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
#Absolute path to this script
|
||||
SCRIPT=$(readlink -f $0)
|
||||
#Absolute path this script is in
|
||||
SCRIPTPATH=$(dirname $SCRIPT)
|
||||
STACK=$(basename "$SCRIPTPATH")
|
||||
|
||||
cat << EOF > /etc/systemd/system/${STACK}.service
|
||||
[Unit]
|
||||
Description=Starting ${STACK}
|
||||
After=network-online.target firewalld.service docker.service docker.socket
|
||||
Wants=network-online.target docker.service
|
||||
Requires=docker.socket
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
User=$SUDO_USER
|
||||
ExecStart=$SCRIPTPATH/start.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl daemon-reload
|
||||
systemctl enable ${STACK}.service
|
8
start.sh
Executable file
8
start.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
#Absolute path to this script
|
||||
SCRIPT=$(readlink -f $0)
|
||||
#Absolute path this script is in
|
||||
SCRIPTPATH=$(dirname $SCRIPT)
|
||||
|
||||
cd $SCRIPTPATH
|
||||
sudo docker-compose start
|
Loading…
Reference in New Issue
Block a user