Blame view

deploy.sh 2.35 KB
a7065b1b3   George Vlahavas   Add deploy and de...
1
  #!/bin/sh
bb68d7fdb   George Vlahavas   Dump all containe...
2
  dump_logs() {
33ea208d5   George Vlahavas   Fix typo
3
    CONTAINERS="suricata elasticsearch logstash kibana webserver composer api od mltd mqtt timescaledb grafana"
bb68d7fdb   George Vlahavas   Dump all containe...
4
    for CONTAINER in $CONTAINERS; do
83d192a8b   George Vlahavas   Mark end of logs too
5
      echo "*** Logs for kea_$CONTAINER (start) ***"
bb68d7fdb   George Vlahavas   Dump all containe...
6
      docker logs kea_$CONTAINER
83d192a8b   George Vlahavas   Mark end of logs too
7
      echo "*** Logs for kea_$CONTAINER (end) ***"
bb68d7fdb   George Vlahavas   Dump all containe...
8
    done
626f6d63f   George Vlahavas   Show contents of ...
9
10
11
    echo "*** Contents of data directory (start) ***"
    ls -lR data
    echo "*** Contents of data directory (end) ***"
bb68d7fdb   George Vlahavas   Dump all containe...
12
  }
a7065b1b3   George Vlahavas   Add deploy and de...
13
14
15
16
  # Login into the CUREX registry
  docker login https://registry.curex-project.eu:443/artifactory/curex-local/
  
  # pull all containers
fc3cc7824   George Vlahavas   Move composer to ...
17
18
19
20
  docker-compose \
    -f docker-compose-jfrog.yml \
    -f docker-compose-jfrog-composer.yml \
    pull
a7065b1b3   George Vlahavas   Add deploy and de...
21
22
23
24
  
  sleep 1
  
  # Prepare installation
a6777d113   George Vlahavas   Add some messages
25
  echo "Preparing installation..."
a7065b1b3   George Vlahavas   Add deploy and de...
26
  cd api
41c17fd87   George Vlahavas   Fix filename
27
  cp .env.example .env
a7065b1b3   George Vlahavas   Add deploy and de...
28
29
30
31
  docker run --rm -v $(pwd):/app \
    registry.curex-project.eu:443/curex-local/kea_composer:2.0.7 \
    install
  cd ..
3f6bad8ff   George Vlahavas   Run create_volume...
32
  sh ./create_volumes.sh
a7065b1b3   George Vlahavas   Add deploy and de...
33

1898c47f2   George Vlahavas   Loop until all al...
34
35
  # Keep the timestamp of when starting up containers
  TIME_START=`date +%s`
00ba62308   George Vlahavas   Stop containers b...
36
  # Just in case something is up from previous runs
a6777d113   George Vlahavas   Add some messages
37
  echo "Bringing down any previous containers..."
00ba62308   George Vlahavas   Stop containers b...
38
  docker-compose -f docker-compose-jfrog.yml down
a7065b1b3   George Vlahavas   Add deploy and de...
39
  # Run containers
a6777d113   George Vlahavas   Add some messages
40
  echo "Bringing up containers..."
a7065b1b3   George Vlahavas   Add deploy and de...
41
  docker-compose -f docker-compose-jfrog.yml up --detach
1898c47f2   George Vlahavas   Loop until all al...
42
43
  
  # loop until all containers are up
a6777d113   George Vlahavas   Add some messages
44
  echo "Checking if all containers are up..."
942cf4e44   George Vlahavas   Fix loop
45
  while true; do
1898c47f2   George Vlahavas   Loop until all al...
46
47
48
49
50
51
52
53
    # if any container other than composer has exited, bail out
    res=`docker ps -a | \
      grep "/curex-local/kea_" | \
      grep -v "kea_composer" | \
      grep "Exited" | \
      wc -l`
    if [ $res -gt 0 ]; then
      echo "ERROR: Some containers have exited."
24c412072   George Vlahavas   Show header line
54
      docker ps -a | grep "^CONTAINER\|/curex-local/kea_"
bb68d7fdb   George Vlahavas   Dump all containe...
55
      dump_logs
b9f8960be   George Vlahavas   Stop containers a...
56
      docker-compose -f docker-compose-jfrog.yml down
1898c47f2   George Vlahavas   Loop until all al...
57
58
59
60
61
62
63
64
65
      exit 1
    fi
    # count containers that are up
    res=`docker ps -a | \
      grep "/curex-local/kea_" | \
      grep -v "kea_composer" | \
      grep "Up" | \
      wc -l`
    if [ $res -eq 11 ]; then
a6777d113   George Vlahavas   Add some messages
66
      echo "All good!"
1898c47f2   George Vlahavas   Loop until all al...
67
68
69
70
71
72
73
      break
    fi
    # only wait for 10 mins until everything is up. It should be more than
    # enough.
    TIME_NOW=`date +%s`
    if [ $((TIME_NOW - TIME_START)) -ge 600 ]; then
      echo "ERROR: Timeout exceeded."
bb68d7fdb   George Vlahavas   Dump all containe...
74
      dump_logs
b9f8960be   George Vlahavas   Stop containers a...
75
      docker-compose -f docker-compose-jfrog.yml down
1898c47f2   George Vlahavas   Loop until all al...
76
77
78
79
80
81
82
      exit 2
    fi
    sleep 1
  done
  
  # Wait a bit more
  sleep 10
a7065b1b3   George Vlahavas   Add deploy and de...
83
84
  
  # create and populate the database
a6777d113   George Vlahavas   Add some messages
85
  echo "Creating and populating the database..."
64ac3cad4   George Vlahavas   Specify filename ...
86
  docker-compose -f docker-compose-jfrog.yml exec api php artisan migrate:fresh --seed --force
a7065b1b3   George Vlahavas   Add deploy and de...
87