stavepan
Joined 5 years ago
Joined 5 years ago
version: '3' services: mysql: image: mysql:8.0
app:
build: .
command: is_ready --timeout 10 --addr mysql:3306 -- <run migrations command>
For cases like this, returning 503 every time the database is not ready, is not very convenient.For example, in the case of PostgreSQL, there is already a tool called pg_isready [0] to do this inside a healthcheck as you described.
services: postgres-db: image: postgres healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"]
application:
image: image
depends_on:
postgres-db:
condition: service_healthy
However, this is not the case for other databases/services.[0] https://www.postgresql.org/docs/current/app-pg-isready.html
I built it for many reasons: - Most docker images do not contain netcat so you would have to download one of them in any case. - In the case of is_ready, you won't have to write this script yourself. - Repositories like this had a lot of traffic so I supposed that engineers need a similar tool but this repository requires wget and netcat as dependencies. For this reason, I built my own without any dependencies. https://github.com/eficode/wait-for
In my company, we do 1-on-1s once a month for 1 hour. The manager asks questions like:
- How are you? - What's the skill that you are trying to improve this month? - How I (the manager) or the company can help you to improve this skill? -Do you feel that your responsibilities in the company are common with your personal goals?
I think that these meetings are successful when there is a clear agenda and both sides are prepared.
Personally, I feel very happy with these meetings.
As this repository mentions, this is the example using PostgreSQL.
depends_on: postgres-database: condition: service_healthy
healthcheck: test: ["CMD-SHELL", "pg_isready"] interval: 10s timeout: 5s retries: 5
However, PostgreSQL has already a command for this called pg_isready.
How is this going to work for other cases such as MySQL?