-
-
Save phuysmans/4f67a7fa1b0c6809a86f014694ac6c3a to your computer and use it in GitHub Desktop.
version: '2.1' | |
services: | |
php: | |
tty: true | |
build: | |
context: . | |
dockerfile: tests/Docker/Dockerfile-PHP | |
args: | |
version: cli | |
volumes: | |
- ./src:/var/www/src | |
- ./tests:/var/www/tests | |
- ./build:/var/www/build | |
- ./phpunit.xml.dist:/var/www/phpunit.xml.dist | |
depends_on: | |
couchbase: | |
condition: service_healthy | |
memcached: | |
condition: service_started | |
mysql: | |
condition: service_healthy | |
postgresql: | |
condition: service_healthy | |
redis: | |
condition: service_healthy | |
couchbase: | |
build: | |
context: . | |
dockerfile: tests/Docker/Dockerfile-Couchbase | |
healthcheck: | |
test: ["CMD", "curl", "-f", "http://Administrator:password@localhost:8091/pools/default/buckets/default"] | |
interval: 1s | |
timeout: 3s | |
retries: 60 | |
memcached: | |
image: memcached | |
# not sure how to properly healthcheck | |
mysql: | |
image: mysql | |
environment: | |
- MYSQL_ALLOW_EMPTY_PASSWORD=yes | |
- MYSQL_ROOT_PASSWORD= | |
- MYSQL_DATABASE=cache | |
healthcheck: | |
test: ["CMD", "mysql" ,"-h", "mysql", "-P", "3306", "-u", "root", "-e", "SELECT 1", "cache"] | |
interval: 1s | |
timeout: 3s | |
retries: 30 | |
postgresql: | |
image: postgres | |
environment: | |
- POSTGRES_PASSWORD= | |
- POSTGRES_DB=cache | |
healthcheck: | |
test: ["CMD", "pg_isready"] | |
interval: 1s | |
timeout: 3s | |
retries: 30 | |
redis: | |
image: redis | |
healthcheck: | |
test: ["CMD", "redis-cli", "ping"] | |
interval: 1s | |
timeout: 3s | |
retries: 30 |
condition
parameter is no longer supported by docker v3.0 and above
@wajdijurry
Thanks for the information
Thanks a lot, wish found it yesterday
@wajdijurry Not true, condition
is supported by the compose specification:
https://github.com/compose-spec/compose-spec/blob/master/spec.md#long-syntax-1
@wajdijurry Not true,
condition
is supported by the compose specification:https://github.com/compose-spec/compose-spec/blob/master/spec.md#long-syntax-1
Yo, do you see the version 👆 (2.1)
Think before you write plz
Think before you write plz
Please don't be mean. It doesn't do anyone any good and only spreads a bad mood.
We're all in the same boat.
@danmutblix Actually this does work with the docker-compose 2.1 format:
$ docker-compose config
services:
nginx:
depends_on:
postgres:
condition: service_healthy
image: nginx:1.20
postgres:
environment:
POSTGRES_PASSWORD: test
healthcheck:
test: pg_isready
image: postgres:13
version: '2.1'
$ docker-compose up -d
Building with native build. Learn about native build in Compose here: https://docs.docker.com/go/compose-native-build/
Creating network "ok_default" with the default driver
Creating ok_postgres_1 ... done
Creating ok_nginx_1 ... done
$
condition
was removed for the 3.x compose format but reintroduced with the compose specification. So, it worked in 2.1+ and it works now.
🤷♂️ Think before you write plz 🤷♂️
@danmutblix Actually this does work with the docker-compose 2.1 format:
$ docker-compose config services: nginx: depends_on: postgres: condition: service_healthy image: nginx:1.20 postgres: environment: POSTGRES_PASSWORD: test healthcheck: test: pg_isready image: postgres:13 version: '2.1' $ docker-compose up -d Building with native build. Learn about native build in Compose here: https://docs.docker.com/go/compose-native-build/ Creating network "ok_default" with the default driver Creating ok_postgres_1 ... done Creating ok_nginx_1 ... done $
condition
was removed for the 3.x compose format but reintroduced with the compose specification. So, it worked in 2.1+ and it works now.🤷♂️ Think before you write plz 🤷♂️
Okay, my bad. I'm sorry.
Have a gr8 day and thx for clearing this up 👍
Think before you write plz
Please don't be mean. It doesn't do anyone any good and only spreads a bad mood.
We're all in the same boat.
Yes, I'm sorry 😔
We're literally working with docker health checks, it's too easy to get frustrated with this stuff
test: redis-cli ping
if you want to be a bit neater :)