Skip to content

Commit a18ad96

Browse files
committed
Check docker compose ps for dead containers
1 parent afc0456 commit a18ad96

4 files changed

Lines changed: 31 additions & 24 deletions

File tree

docker-compose-prod.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,10 @@ services:
4141
POSTGRES_USER: ${DB_USER}
4242
POSTGRES_PASSWORD: ${DB_PASSWORD}
4343
healthcheck:
44-
test: pg_isready -U postgres -h 127.0.0.1
45-
interval: 5s
44+
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
45+
interval: 1s
46+
timeout: 5s
47+
retries: 10
4648
volumes:
4749
- db-data:/var/lib/postgresql/data
4850
solr:

docker-compose.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,20 +26,24 @@ services:
2626
logging:
2727
driver: none
2828
image: postgres:14.2
29+
restart: unless-stopped
2930
env_file: .env
3031
environment:
3132
PGDATA: /var/lib/postgresql/data
3233
POSTGRES_DB: ${DB_NAME}
3334
POSTGRES_USER: ${DB_USER}
3435
POSTGRES_PASSWORD: ${DB_PASSWORD}
3536
healthcheck:
36-
test: pg_isready -U postgres -h 127.0.0.1
37-
interval: 5s
37+
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
38+
interval: 1s
39+
timeout: 5s
40+
retries: 10
3841
volumes:
3942
- db-data:/var/lib/postgresql/data
4043
solr:
4144
container_name: ${PREFIX}-solr
4245
image: solr:8
46+
restart: unless-stopped
4347
volumes:
4448
- solr-data:/var/solr
4549
- ./solr:/opt/solr/server/solr/configsets/development
@@ -52,6 +56,7 @@ services:
5256
redis:
5357
container_name: ${PREFIX}-redis
5458
image: redis:6
59+
restart: unless-stopped
5560
healthcheck:
5661
test: redis-cli ping
5762
interval: 1s
@@ -62,6 +67,7 @@ services:
6267
sidekiq:
6368
container_name: ${PREFIX}-sidekiq
6469
image: ${PREFIX}-app
70+
restart: unless-stopped
6571
depends_on:
6672
- app
6773
- db

scripts/check_deployment.rb

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,23 @@
11
output = `curl --verbose --silent http://localhost:3000/ 2>&1`
2+
23
if $?.success? && output.include?('Browse the catalogue')
3-
exit 0
4-
else
5-
puts "::group::Docker logs"
6-
puts `docker compose --file docker-compose-prod.yml logs`
7-
puts "::endgroup::"
8-
puts "::group::curl output"
9-
puts output
10-
puts "::endgroup::"
11-
exit 1
4+
docker_ps = `docker compose ps -a --format json`
5+
if $?.success?
6+
j = JSON.parse(docker_ps)
7+
unless j.any? { |c| c['ExitCode'] == 1 }
8+
exit 0
9+
end
10+
end
1211
end
1312

13+
puts "::group::Docker ps"
14+
puts `docker compose ps -a`
15+
puts "::endgroup::"
16+
puts "::group::Docker logs"
17+
puts `docker compose --file docker-compose-prod.yml logs`
18+
puts "::endgroup::"
19+
puts "::group::curl output"
20+
puts output
21+
puts "::endgroup::"
22+
23+
exit 1

test/integration/redis_test.rb

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)