Enhancements

This commit is contained in:
Patrick Jentsch 2019-11-26 11:39:27 +01:00
parent 8a3e5073a3
commit 3d7ebfa1dd
2 changed files with 67 additions and 14 deletions

View File

@ -3,32 +3,29 @@
OPAQUE_STORAGE_MOUNT_DIRECTORY="/mnt/opaque" # Don't change this variable, unless you know what you are doing!
SWARM_MANAGER_IP=""
SWARM_WORKER_NUMBER=4
SWARM_WORKER_TOKEN=""
if [ -z ${SWARM_MANAGER_IP} ]; then
# See https://stackoverflow.com/a/25851186
SWARM_MANAGER_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
fi
if [ -z ${SWARM_WORKER_TOKEN} ]; then
docker swarm leave --force > /dev/null 2>&1
docker swarm init --advertise-addr ${SWARM_MANAGER_IP} > /dev/null 2>&1
SWARM_WORKER_TOKEN=$(docker swarm join-token -q worker)
fi
echo "Leave possible swarm..."
docker swarm leave --force > /dev/null 2>&1
docker-compose --file dind_swarm.yml up --detach storage
sleep 3
echo "Mounting network storage to host system..."
echo "Mount network storage to host system..."
sudo mkdir -p /mnt/opaque
sudo mount -t cifs -o gid=${USER},password=opaque,uid=${USER},user=opaque,vers=3.0 //localhost/opaque_storage /mnt/opaque
echo "Done"
docker-compose --file dind_swarm.yml up --detach --scale worker=${SWARM_WORKER_NUMBER} worker
sleep 10
echo "Add workers to swarm"
docker-compose --file dind_swarm.yml up --detach --scale worker=${SWARM_WORKER_NUMBER} worker viz
sleep 5
echo "Init Docker swarm..."
docker swarm init --advertise-addr ${SWARM_MANAGER_IP} > /dev/null 2>&1
echo "Join workers to swarm..."
SWARM_WORKER_TOKEN=$(docker swarm join-token -q worker)
for i in $(seq 1 ${SWARM_WORKER_NUMBER}); do
docker-compose --file dind_swarm.yml exec --index=${i} worker docker swarm join --token ${SWARM_WORKER_TOKEN} ${SWARM_MANAGER_IP}:2377
done
docker-compose --file dind_swarm.yml up --detach viz

56
docker_stack_deploy.yml Normal file
View File

@ -0,0 +1,56 @@
version: '3'
services:
web:
depends_on:
- db
- redis
deploy:
placement:
constraints:
- node.role == manager
env_file:
- db.env
- web.env
image: gitlab.ub.uni-bielefeld.de:4567/sfb1288inf/opaque:development
ports:
- 5000:5000
volumes:
- storage:/mnt/opaque
daemon:
depends_on:
- db
deploy:
placement:
constraints:
- node.role == manager
env_file:
- db.env
- web.env
image: gitlab.ub.uni-bielefeld.de:4567/sfb1288inf/opaque_daemon:latest
volumes:
- storage:/mnt/opaque
- $HOME/.docker/config.json:/home/opaque_daemon/.docker/config.json
db:
deploy:
placement:
constraints:
- node.role == manager
env_file: db.env
image: postgres:11-alpine
volumes:
- /srv/opaque/database:/var/lib/postgresql/data
redis:
deploy:
placement:
constraints:
- node.role == manager
image: redis:alpine
volumes:
storage:
driver: local
driver_opts:
device: "//127.0.0.1/opaque_storage"
o: "gid=1000,password=opaque,uid=1000,username=opaque"
type: cifs