Skip to content

Commit fcbb522

Browse files
authored
SNO2-41-fix-docker-compose-race-condition (#868)
1 parent ee257f2 commit fcbb522

4 files changed

+31
-1
lines changed

.circleci/config.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ jobs:
9595
- run:
9696
name: Upload coverage
9797
command: |
98-
docker-compose run --no-deps -e COVERALLS_REPO_TOKEN=$COVERALLS_REPO_TOKEN pyramid coveralls
98+
docker-compose run --no-deps --entrypoint "/bin/bash" -e COVERALLS_REPO_TOKEN=$COVERALLS_REPO_TOKEN pyramid -c "git config --global --add safe.directory /igvfd && coveralls"
9999
- store_test_results:
100100
path: test-results
101101

docker-compose.test-indexer.yml

+8
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ services:
6161
- ".:/igvfd"
6262
- "/igvfd/src/igvfd.egg-info"
6363
- "/igvfd/src/igvfd/static"
64+
entrypoint: ./docker/wait-for-local-services-entrypoint.sh
6465
command: /scripts/pyramid/run-development.sh
6566
ports:
6667
- "6543:6543"
@@ -92,6 +93,9 @@ services:
9293
- TRANSACTION_QUEUE_URL=http://localstack:4566/000000000000/transaction-queue
9394
- INVALIDATION_QUEUE_URL=http://localhost:4566/000000000000/invalidation-queue
9495
- RESOURCES_INDEX=snovault-resources
96+
volumes:
97+
- "./docker/wait-for-local-services-entrypoint.sh:/snovault-index/wait-for-local-services-entrypoint.sh"
98+
entrypoint: ./wait-for-local-services-entrypoint.sh
9599
command: run-invalidation-service
96100
depends_on:
97101
- postgres
@@ -111,6 +115,9 @@ services:
111115
- BACKEND_KEY=foobar
112116
- BACKEND_SECRET_KEY=bazqux
113117
- RESOURCES_INDEX=snovault-resources
118+
volumes:
119+
- "./docker/wait-for-local-services-entrypoint.sh:/snovault-index/wait-for-local-services-entrypoint.sh"
120+
entrypoint: ./wait-for-local-services-entrypoint.sh
114121
command: run-indexing-service
115122
depends_on:
116123
- postgres
@@ -148,6 +155,7 @@ services:
148155
- ".:/igvfd"
149156
- "/igvfd/src/igvfd.egg-info"
150157
- "/igvfd/src/igvfd/static"
158+
entrypoint: ./docker/wait-for-local-services-entrypoint.sh
151159
command: pytest -rf --cov=igvfd -s -o junit_family=legacy --junitxml=./.test-results/junit.xml --cov-append -m 'indexing'
152160
depends_on:
153161
- postgres

docker-compose.yml

+9
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ services:
6161
- ".:/igvfd"
6262
- "/igvfd/src/igvfd.egg-info"
6363
- "/igvfd/src/igvfd/static"
64+
entrypoint: ./docker/wait-for-local-services-entrypoint.sh
6465
command: /scripts/pyramid/run-create-mapping.sh
6566
depends_on:
6667
- postgres
@@ -82,6 +83,7 @@ services:
8283
- ".:/igvfd"
8384
- "/igvfd/src/igvfd.egg-info"
8485
- "/igvfd/src/igvfd/static"
86+
entrypoint: ./docker/wait-for-local-services-entrypoint.sh
8587
command: load-development
8688
depends_on:
8789
- create-mapping
@@ -104,6 +106,7 @@ services:
104106
- ".:/igvfd"
105107
- "/igvfd/src/igvfd.egg-info"
106108
- "/igvfd/src/igvfd/static"
109+
entrypoint: ./docker/wait-for-local-services-entrypoint.sh
107110
command: /scripts/pyramid/run-development.sh
108111
ports:
109112
- "6543:6543"
@@ -133,6 +136,9 @@ services:
133136
- TRANSACTION_QUEUE_URL=http://localstack:4566/000000000000/transaction-queue
134137
- INVALIDATION_QUEUE_URL=http://localhost:4566/000000000000/invalidation-queue
135138
- RESOURCES_INDEX=snovault-resources
139+
volumes:
140+
- "./docker/wait-for-local-services-entrypoint.sh:/snovault-index/wait-for-local-services-entrypoint.sh"
141+
entrypoint: ./wait-for-local-services-entrypoint.sh
136142
command: run-invalidation-service
137143
depends_on:
138144
- pyramid
@@ -149,6 +155,9 @@ services:
149155
- BACKEND_KEY=foobar
150156
- BACKEND_SECRET_KEY=bazqux
151157
- RESOURCES_INDEX=snovault-resources
158+
volumes:
159+
- "./docker/wait-for-local-services-entrypoint.sh:/snovault-index/wait-for-local-services-entrypoint.sh"
160+
entrypoint: ./wait-for-local-services-entrypoint.sh
152161
command: run-indexing-service
153162
depends_on:
154163
- pyramid
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/bash
2+
while ! curl -s http://localstack:4566/_localstack/init | grep -q '\"READY\": true'; do
3+
echo 'Waiting for Localstack to become ready...';
4+
sleep 5;
5+
done;
6+
echo 'Localstack is ready.';
7+
while ! curl -s http://opensearch:9200 | grep -q '\"cluster_name\"'; do
8+
echo 'Waiting for Opensearch to become ready...';
9+
sleep 5;
10+
done;
11+
echo 'Opensearch is ready.';
12+
13+
exec "$@"

0 commit comments

Comments
 (0)