...
Code Block | ||||
---|---|---|---|---|
| ||||
# # ===========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 | ||||
---|---|---|---|---|
| ||||
#!/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 | ||||
---|---|---|---|---|
| ||||
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
...