Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languageyml
titledocker-compose-test.yml
#
# ===========LICENSE_START====================================================
#  Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
#  Modifications Copyright (C) 2021 Bell Canada. All rights reserved.
# ============================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ============LICENSE_END=====================================================
#
version: '2'
services:
   mariadb:
      image: nexus3.onap.org:10001/mariadb:10.5.8
      container_name: mariadb
      hostname: mariadb
      command: ['--lower-case-table-names=1', '--wait_timeout=28800']
      env_file: config/db/db.conf
      volumes:
         - ./config/db:/docker-entrypoint-initdb.d:ro
      expose:
       - 3306
   liquibase:
      image: liquibase/liquibase
      container_name: liquibase
      depends_on:
       - mariadb
      hostname: liquibase
      expose:
       - 22
      env_file: config/db/db.conf
      environment:
        MYSQL_DB: policyadmin
      volumes:
         - ./config/db:/liquibase/changelog
         - ./waitcheck_fortcp_itport.sh:/liquibase/waitcheck_fortcp_itport.sh
      entrypoint: ['/bin/sh', '-c']
      command: [
                 '/liquibase/waitcheck_fortcp_itport.sh mariadb 3306  &&
                   /liquibase/liquibase
                   --driver=org.mariadb.jdbc.Driver
                   --url=jdbc:mariadb://mariadb:3306/$${MYSQL_DB}
                   --changeLogFile=changelog/dbchangelog.mariadb-master.yaml
                   --username=$${MYSQL_USER}
                   --password=$${MYSQL_PASSWORD}
                   update'
               ]


Add waitAdd check_fortcp_itport.sh (waitcheck_fortcp_port.sh uses the nc command which is not available in the liquibase image)

...

Code Block
languagetext
titlewait_for_it.sh
#!/bin/bash
HOST=$1# PORT=$2

check_host_port(){
timeout=10
start_ts===========LICENSE_START====================================================
#  Copyright (C) 2021. Nordix Foundation. All rights reserved.
# =============================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END======================================================
HOST=$1
PORT=$2
TIMEOUT=10

check_host_port(){
    start_ts=$(date +%s)
    counter=0
    while :
do
#echo $counter[ $counter -le $TIMEOUT ];
    do
            (echo -n > /dev/tcp/$HOST/$PORT) >/dev/null 2>&1
            result=$?

        if [ $result -eq 0 ]; then; then
            end_ts=$(date +%s)
            echo "$HOST:$PORT is available after $((end_ts - start_ts)) seconds"
            break
        fi
        sleep 1
        let counter=counter+1
    done
}


check_host_port

if [ $counter -ge $timeout$TIMEOUT ]; then
        echo "$HOST:$PORT is not available after $timeout$TIMEOUT seconds"
break
fi


Add dbchangelog-master.yaml and dbchangelog.mariadb.yaml to config/db

Code Block
languageyml
titledbchangelog-master.yaml
databaseChangeLog:
 sleep 1- let counter=counter+1
done
}include:
     check_host_port 

...

file: changelog/dbchangelog.mariadb.yaml

...




Run docker-compose -f docker-compose-test.yml up --build

...