Skip to content

ETL-1211: switch from curlimages/curl to alpine + netcat-openbsd - #1

Merged
sudopower merged 1 commit into
mainfrom
ETL-1211
Jun 25, 2026
Merged

ETL-1211: switch from curlimages/curl to alpine + netcat-openbsd#1
sudopower merged 1 commit into
mainfrom
ETL-1211

Conversation

@sudopower

Copy link
Copy Markdown
Member

Summary

  • nc -z is purpose-built for TCP port checks — intent is immediately obvious, no curl exit code quirks to reason about (ETL-1211)
  • netcat-openbsd is ~80KB vs curlimages/curl at ~8MB — significantly smaller image
  • Works cleanly for any TCP service (Postgres, NATS, Redis) without protocol-specific workarounds

Changes

  • Dockerfile: switch base from curlimages/curl:latest to alpine:3.20, install netcat-openbsd
  • README.md: update usage example from curl one-liner to nc -z <host> <port>

Test plan

  • Build image locally: docker build -t wait-probe:test .
  • Run probe against a listening port: docker run --rm wait-probe:test sh -c 'nc -z google.com 443 && echo ok'
  • Verify non-root UID: docker run --rm wait-probe:test iduid=100

Rollback

Revert PR — no data writes or migrations.

…penbsd

nc -z is purpose-built for TCP port checks — no exit code quirks, and
netcat-openbsd is ~80KB vs the ~8MB curlimages/curl base image.
@sudopower
sudopower merged commit 25babe5 into main Jun 25, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant