-
-
Notifications
You must be signed in to change notification settings - Fork 251
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Repo with reproducible example
Expected Behaviour
The test process should complete successfully without hanging when being ran from a clean state.
Actual Behaviour
The test process hangs when the Ryuk container is created by the test process. If the Ryuk container is already running the test process completes successfully.
This issue does not occur when using the setupFiles option in Vitest but those are ran for every test file, not globally for the whole test process like globalSetup.
Testcontainer Logs
> [email protected] test
> DEBUG=testcontainers* vitest run
RUN v3.1.1 /Users/matthew.vance/code/testcontainers-vitest-global-setup-bug
�[33;1mtestcontainers �[0m[DEBUG] Checking container runtime strategy "TestcontainersHostStrategy"... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Container runtime strategy "TestcontainersHostStrategy" is not applicable �[33m+1ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Checking container runtime strategy "ConfigurationStrategy"... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Container runtime strategy "ConfigurationStrategy" is not applicable �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Checking container runtime strategy "UnixSocketStrategy"... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[TRACE] Fetching Docker info... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[TRACE] Fetching remote container runtime socket path... �[33m+13ms�[0m
�[33;1mtestcontainers �[0m[TRACE] Resolving host... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[TRACE] Fetching Compose info... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[TRACE] Looking up host IPs... �[33m+724ms�[0m
�[33;1mtestcontainers �[0m[TRACE] Initialising clients... �[33m+1ms�[0m
�[33;1mtestcontainers �[0m[TRACE] Container runtime info:
�[33;1mtestcontainers �[0m{
�[33;1mtestcontainers �[0m "node": {
�[33;1mtestcontainers �[0m "version": "v22.14.0",
�[33;1mtestcontainers �[0m "architecture": "arm64",
�[33;1mtestcontainers �[0m "platform": "darwin"
�[33;1mtestcontainers �[0m },
�[33;1mtestcontainers �[0m "containerRuntime": {
�[33;1mtestcontainers �[0m "host": "localhost",
�[33;1mtestcontainers �[0m "hostIps": [
�[33;1mtestcontainers �[0m {
�[33;1mtestcontainers �[0m "address": "::1",
�[33;1mtestcontainers �[0m "family": 6
�[33;1mtestcontainers �[0m },
�[33;1mtestcontainers �[0m {
�[33;1mtestcontainers �[0m "address": "127.0.0.1",
�[33;1mtestcontainers �[0m "family": 4
�[33;1mtestcontainers �[0m }
�[33;1mtestcontainers �[0m ],
�[33;1mtestcontainers �[0m "remoteSocketPath": "/var/run/docker.sock",
�[33;1mtestcontainers �[0m "indexServerAddress": "https://index.docker.io/v1/",
�[33;1mtestcontainers �[0m "serverVersion": "28.0.4",
�[33;1mtestcontainers �[0m "operatingSystem": "Docker Desktop",
�[33;1mtestcontainers �[0m "operatingSystemType": "linux",
�[33;1mtestcontainers �[0m "architecture": "aarch64",
�[33;1mtestcontainers �[0m "cpus": 14,
�[33;1mtestcontainers �[0m "memory": 25162190848,
�[33;1mtestcontainers �[0m "runtimes": [
�[33;1mtestcontainers �[0m "io.containerd.runc.v2",
�[33;1mtestcontainers �[0m "runc"
�[33;1mtestcontainers �[0m ],
�[33;1mtestcontainers �[0m "labels": [
�[33;1mtestcontainers �[0m "com.docker.desktop.address=unix:///Users/matthew.vance/Library/Containers/com.docker.docker/Data/docker-cli.sock"
�[33;1mtestcontainers �[0m ]
�[33;1mtestcontainers �[0m },
�[33;1mtestcontainers �[0m "compose": {
�[33;1mtestcontainers �[0m "version": "2.34.0-desktop.1",
�[33;1mtestcontainers �[0m "compatability": "v2"
�[33;1mtestcontainers �[0m }
�[33;1mtestcontainers �[0m} �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Container runtime strategy "UnixSocketStrategy" works �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Checking if image exists "redis:alpine"... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Checked if image exists "redis:alpine" �[33m+3ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Image "redis:alpine" already exists �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Acquiring lock file "/var/folders/mj/qt6qf8sj1k50v3_pq66yp87m0000gq/T/testcontainers-node.lock"... �[33m+3ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Acquired lock file "/var/folders/mj/qt6qf8sj1k50v3_pq66yp87m0000gq/T/testcontainers-node.lock" �[33m+1ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Listing containers... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Listed containers �[33m+5ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Creating new Reaper for session "ee20d9750b44" with socket path "/var/run/docker.sock"... �[33m+1ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Checking if image exists "testcontainers/ryuk:0.11.0"... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Checked if image exists "testcontainers/ryuk:0.11.0" �[33m+2ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Image "testcontainers/ryuk:0.11.0" already exists �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Creating container for image "testcontainers/ryuk:0.11.0"... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [e986c9d412d8] Created container for image "testcontainers/ryuk:0.11.0" �[33m+19ms�[0m
�[33;1mtestcontainers �[0m[INFO] [e986c9d412d8] Starting container for image "testcontainers/ryuk:0.11.0"... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [e986c9d412d8] Starting container... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [e986c9d412d8] Started container �[33m+86ms�[0m
�[33;1mtestcontainers �[0m[INFO] [e986c9d412d8] Started container for image "testcontainers/ryuk:0.11.0" �[33m+1ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [e986c9d412d8] Fetching container logs... �[33m+2ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [e986c9d412d8] Waiting for container to be ready... �[33m+1ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [e986c9d412d8] Waiting for log message "/.*Started.*/"... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [e986c9d412d8] Fetching container logs... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [e986c9d412d8] Demuxing stream... �[33m+2ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [e986c9d412d8] Demuxed stream �[33m+0ms�[0m
�[35;1mtestcontainers:containers �[0m[e986c9d412d8] time=2025-04-09T21:51:26.365Z level=INFO msg=starting connection_timeout=1m0s reconnection_timeout=10s request_timeout=10s shutdown_timeout=10m0s remove_retries=10 retry_offset=-1s changes_retry_interval=1s port=8080 verbose=false �[35m+0ms�[0m
�[35;1mtestcontainers:containers �[0m[e986c9d412d8] time=2025-04-09T21:51:26.365Z level=INFO msg=Started address=[::]:8080 �[35m+0ms�[0m
�[35;1mtestcontainers:containers �[0m[e986c9d412d8] time=2025-04-09T21:51:26.365Z level=INFO msg="client processing started" �[35m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [e986c9d412d8] Demuxing stream... �[33m+1ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [e986c9d412d8] Demuxed stream �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [e986c9d412d8] Log wait strategy complete �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[INFO] [e986c9d412d8] Container is ready �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [e986c9d412d8] Connecting to Reaper (attempt 1) on "localhost:55099"... �[33m+1ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [e986c9d412d8] Connected to Reaper �[33m+1ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Releasing lock file "/var/folders/mj/qt6qf8sj1k50v3_pq66yp87m0000gq/T/testcontainers-node.lock"... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Released lock file "/var/folders/mj/qt6qf8sj1k50v3_pq66yp87m0000gq/T/testcontainers-node.lock" �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] Creating container for image "redis:alpine"... �[33m+0ms�[0m
�[35;1mtestcontainers:containers �[0m[e986c9d412d8] time=2025-04-09T21:51:26.372Z level=INFO msg="client connected" address=192.168.65.1:62144 clients=1 �[35m+4ms�[0m
�[35;1mtestcontainers:containers �[0m[e986c9d412d8] time=2025-04-09T21:51:26.372Z level=INFO msg="adding filter" type=label values="[org.testcontainers.session-id=ee20d9750b44]" �[35m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [9699edc10c28] Created container for image "redis:alpine" �[33m+27ms�[0m
�[33;1mtestcontainers �[0m[INFO] [9699edc10c28] Starting container for image "redis:alpine"... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [9699edc10c28] Starting container... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [9699edc10c28] Started container �[33m+93ms�[0m
�[33;1mtestcontainers �[0m[INFO] [9699edc10c28] Started container for image "redis:alpine" �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [9699edc10c28] Fetching container logs... �[33m+4ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [9699edc10c28] Waiting for container to be ready... �[33m+1ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [9699edc10c28] Waiting for host port 55100... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [9699edc10c28] Waiting for internal port 6379... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [9699edc10c28] Host port 55100 ready �[33m+3ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [9699edc10c28] Host port wait strategy complete �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [9699edc10c28] Demuxing stream... �[33m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [9699edc10c28] Demuxed stream �[33m+0ms�[0m
�[35;1mtestcontainers:containers �[0m[9699edc10c28] 1:C 09 Apr 2025 21:51:26.499 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo �[35m+129ms�[0m
�[35;1mtestcontainers:containers �[0m[9699edc10c28] 1:C 09 Apr 2025 21:51:26.500 * Redis version=7.4.2, bits=64, commit=00000000, modified=0, pid=1, just started �[35m+0ms�[0m
�[35;1mtestcontainers:containers �[0m[9699edc10c28] 1:C 09 Apr 2025 21:51:26.500 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf �[35m+0ms�[0m
�[35;1mtestcontainers:containers �[0m[9699edc10c28] 1:M 09 Apr 2025 21:51:26.500 * monotonic clock: POSIX clock_gettime �[35m+0ms�[0m
�[35;1mtestcontainers:containers �[0m[9699edc10c28] 1:M 09 Apr 2025 21:51:26.501 * Running mode=standalone, port=6379. �[35m+0ms�[0m
�[35;1mtestcontainers:containers �[0m[9699edc10c28] 1:M 09 Apr 2025 21:51:26.501 * Server initialized �[35m+0ms�[0m
�[35;1mtestcontainers:containers �[0m[9699edc10c28] 1:M 09 Apr 2025 21:51:26.501 * Ready to accept connections tcp �[35m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [9699edc10c28] Internal port 6379 ready �[33m+64ms�[0m
�[33;1mtestcontainers �[0m[INFO] [9699edc10c28] Container is ready �[33m+0ms�[0m
✓ example.test.js (1 test) 11ms
Test Files 1 passed (1)
Tests 1 passed (1)
Start at 17:51:25
Duration 1.79s (transform 17ms, setup 0ms, collect 153ms, tests 11ms, environment 0ms, prepare 37ms)
�[33;1mtestcontainers �[0m[INFO] [9699edc10c28] Stopping container... �[33m+453ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [9699edc10c28] Stopping container... �[33m+0ms�[0m
�[35;1mtestcontainers:containers �[0m[9699edc10c28] 1:signal-handler (1744235487) Received SIGTERM scheduling shutdown... �[35m+521ms�[0m
�[35;1mtestcontainers:containers �[0m[9699edc10c28] 1:M 09 Apr 2025 21:51:27.023 * User requested shutdown... �[35m+0ms�[0m
�[35;1mtestcontainers:containers �[0m[9699edc10c28] 1:M 09 Apr 2025 21:51:27.023 * Saving the final RDB snapshot before exiting. �[35m+0ms�[0m
�[35;1mtestcontainers:containers �[0m[9699edc10c28] 1:M 09 Apr 2025 21:51:27.024 * DB saved on disk �[35m+1ms�[0m
�[35;1mtestcontainers:containers �[0m[9699edc10c28] 1:M 09 Apr 2025 21:51:27.024 # Redis is now ready to exit, bye bye... �[35m+0ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [9699edc10c28] Stopped container �[33m+129ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [9699edc10c28] Removing container... �[33m+1ms�[0m
�[33;1mtestcontainers �[0m[DEBUG] [9699edc10c28] Removed container �[33m+7ms�[0m
�[33;1mtestcontainers �[0m[INFO] [9699edc10c28] Stopped container �[33m+0ms�[0m
Steps to Reproduce
- Setup example repo: https://github.com/matthew-vance/testcontainers-vitest-global-setup-issue
npm t- Test process should hang
Environment Information
- Operating System: macOS Sequoia 15.3.1
- Docker Version: 28.0.4
- Node version: 22.14.0
- Testcontainers version: 10.24.1
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working