From e10c83a5dfeb4a0e432f6c742cdb7813caa73b73 Mon Sep 17 00:00:00 2001 From: Cristian Greco Date: Tue, 27 May 2025 20:07:50 +0100 Subject: [PATCH 1/4] Downgrade couchbase from 4.4.5 -> 4.4.0 --- package-lock.json | 312 +++++++++++------------- packages/modules/couchbase/package.json | 2 +- 2 files changed, 148 insertions(+), 166 deletions(-) diff --git a/package-lock.json b/package-lock.json index 73e490ada..956a2553a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2381,6 +2381,108 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/@couchbase/couchbase-darwin-arm64-napi": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@couchbase/couchbase-darwin-arm64-napi/-/couchbase-darwin-arm64-napi-4.4.0.tgz", + "integrity": "sha512-TMxmOrNDGdD35wzDfBdAqwy3pawstNpHc/3j8ThjIs6LJTtm6np9HIYQ+ZD3iGjJ41cUZbQ00KjgMaSAftnT5g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@couchbase/couchbase-darwin-x64-napi": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@couchbase/couchbase-darwin-x64-napi/-/couchbase-darwin-x64-napi-4.4.0.tgz", + "integrity": "sha512-31PlLJsM9Igzm/cQSsjQcYxqHW97LUgJmn+BGm0y8xhGGdTEwTWRML3CX9ng9DqhzPRtC3O+y9sYiQuPo191vg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@couchbase/couchbase-linux-arm64-napi": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@couchbase/couchbase-linux-arm64-napi/-/couchbase-linux-arm64-napi-4.4.0.tgz", + "integrity": "sha512-9Znsm99pzYpceff/GoDk6USLmI+1XAka99SIkPlGfYRNucMUy10At6lw8kUDsaMbmRDoaLIxKkKEaB6m9Q9e8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@couchbase/couchbase-linux-x64-napi": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@couchbase/couchbase-linux-x64-napi/-/couchbase-linux-x64-napi-4.4.0.tgz", + "integrity": "sha512-18Re7fD32hbp09pjd0Yy5x5COwJ853j8HED+MRX3Tu+bWGjtTjFUNK3seVAxwNNYsRm8CTq/XsnV/+vy6BQWnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@couchbase/couchbase-linuxmusl-x64-napi": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@couchbase/couchbase-linuxmusl-x64-napi/-/couchbase-linuxmusl-x64-napi-4.4.0.tgz", + "integrity": "sha512-Z5NeSz47opPaHr956vGdqpQd+tjcOp3HZR5WhKxpuI3JfA8KldlHA4KjcHaaX/qGFPhdCDAvJSjy4R1oCypYvQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@couchbase/couchbase-win32-x64-napi": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@couchbase/couchbase-win32-x64-napi/-/couchbase-win32-x64-napi-4.4.0.tgz", + "integrity": "sha512-eYioamHfAKOP3WiManIud2Hc32XW0nSq9CLa0TpkmsbxgNZYsv8G5TWza0xxtAz1VnQ4l7qW+7xE2jLhnzkbaw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16" + } + }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -3261,9 +3363,9 @@ } }, "node_modules/@google-cloud/common/node_modules/gaxios": { - "version": "7.0.0-rc.4", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.0.0-rc.4.tgz", - "integrity": "sha512-fwQMwbs3o8Odl/nc/rkQJwyHeOXdderOwmybUl0gkyTdZXMK1oSTWj4Em7gSogVJsRWDeHPXLY06+e8Rkr01iw==", + "version": "7.0.0-rc.5", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.0.0-rc.5.tgz", + "integrity": "sha512-s9rlpplwdb/KCq2DYevVTM/MpozeVZuR3pkzDGXtRhY7wD4fXftIYXUAerX07ZPB3J8/dHUJsX7fPnN2O4Psuw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3527,9 +3629,9 @@ } }, "node_modules/@google-cloud/pubsub/node_modules/gaxios": { - "version": "7.0.0-rc.4", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.0.0-rc.4.tgz", - "integrity": "sha512-fwQMwbs3o8Odl/nc/rkQJwyHeOXdderOwmybUl0gkyTdZXMK1oSTWj4Em7gSogVJsRWDeHPXLY06+e8Rkr01iw==", + "version": "7.0.0-rc.5", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.0.0-rc.5.tgz", + "integrity": "sha512-s9rlpplwdb/KCq2DYevVTM/MpozeVZuR3pkzDGXtRhY7wD4fXftIYXUAerX07ZPB3J8/dHUJsX7fPnN2O4Psuw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -6728,9 +6830,9 @@ } }, "node_modules/@types/node": { - "version": "22.15.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.21.tgz", - "integrity": "sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==", + "version": "22.15.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.23.tgz", + "integrity": "sha512-7Ec1zaFPF4RJ0eXu1YT/xgiebqwqoJz8rYPDi/O2BcZ++Wpt0Kq9cl0eg6NN6bYbPnR67ZLo7St5Q3UK0SnARw==", "license": "MIT", "dependencies": { "undici-types": "~6.21.0" @@ -7658,9 +7760,9 @@ } }, "node_modules/apache-arrow/node_modules/@types/node": { - "version": "20.17.50", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.50.tgz", - "integrity": "sha512-Mxiq0ULv/zo1OzOhwPqOA13I81CV/W3nvd3ChtQZRT5Cwz3cr0FKo/wMSsbTqL3EXpaBAEQhva2B8ByRkOIh9A==", + "version": "20.17.51", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.51.tgz", + "integrity": "sha512-hccptBl7C8lHiKxTBsY6vYYmqpmw1E/aGR/8fmueE+B390L3pdMOpNSRvFO4ZnXzW5+p2HBXV0yNABd2vdk22Q==", "dev": true, "license": "MIT", "dependencies": { @@ -7702,9 +7804,9 @@ } }, "node_modules/arangojs/node_modules/@types/node": { - "version": "20.17.50", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.50.tgz", - "integrity": "sha512-Mxiq0ULv/zo1OzOhwPqOA13I81CV/W3nvd3ChtQZRT5Cwz3cr0FKo/wMSsbTqL3EXpaBAEQhva2B8ByRkOIh9A==", + "version": "20.17.51", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.51.tgz", + "integrity": "sha512-hccptBl7C8lHiKxTBsY6vYYmqpmw1E/aGR/8fmueE+B390L3pdMOpNSRvFO4ZnXzW5+p2HBXV0yNABd2vdk22Q==", "dev": true, "license": "MIT", "dependencies": { @@ -8657,9 +8759,9 @@ } }, "node_modules/cassandra-driver/node_modules/@types/node": { - "version": "18.19.103", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.103.tgz", - "integrity": "sha512-hHTHp+sEz6SxFsp+SA+Tqrua3AbmlAw+Y//aEwdHrdZkYVRWdvWD3y5uPZ0flYOkgskaFWqZ/YGFm3FaFQ0pRw==", + "version": "18.19.104", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.104.tgz", + "integrity": "sha512-mqjoYx1RjmN61vjnHWfiWzAlwvBKutoUdm+kYLPnjI5DCh8ZqofUhaTbT3WLl7bt3itR8DuCf8ShnxI0JvIC3g==", "dev": true, "license": "MIT", "dependencies": { @@ -9510,6 +9612,29 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, + "node_modules/couchbase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/couchbase/-/couchbase-4.4.0.tgz", + "integrity": "sha512-o0YZklnIC41Biol8KvSqrKovJ5ZcbgprE1CPICwSDtJ7jycf81AphQdBwEAyFb5pTdhRcMvQv5K9UEMcnJ+xnw==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "cmake-js": "^7.3.0", + "node-addon-api": "^8.0.0" + }, + "engines": { + "node": ">=16" + }, + "optionalDependencies": { + "@couchbase/couchbase-darwin-arm64-napi": "4.4.0", + "@couchbase/couchbase-darwin-x64-napi": "4.4.0", + "@couchbase/couchbase-linux-arm64-napi": "4.4.0", + "@couchbase/couchbase-linux-x64-napi": "4.4.0", + "@couchbase/couchbase-linuxmusl-x64-napi": "4.4.0", + "@couchbase/couchbase-win32-x64-napi": "4.4.0" + } + }, "node_modules/cpu-features": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.9.tgz", @@ -15780,9 +15905,9 @@ } }, "node_modules/openai/node_modules/@types/node": { - "version": "18.19.103", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.103.tgz", - "integrity": "sha512-hHTHp+sEz6SxFsp+SA+Tqrua3AbmlAw+Y//aEwdHrdZkYVRWdvWD3y5uPZ0flYOkgskaFWqZ/YGFm3FaFQ0pRw==", + "version": "18.19.104", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.104.tgz", + "integrity": "sha512-mqjoYx1RjmN61vjnHWfiWzAlwvBKutoUdm+kYLPnjI5DCh8ZqofUhaTbT3WLl7bt3itR8DuCf8ShnxI0JvIC3g==", "dev": true, "license": "MIT", "dependencies": { @@ -20647,150 +20772,7 @@ "testcontainers": "^11.0.0" }, "devDependencies": { - "couchbase": "^4.4.5" - } - }, - "packages/modules/couchbase/node_modules/@couchbase/couchbase-darwin-arm64-napi": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@couchbase/couchbase-darwin-arm64-napi/-/couchbase-darwin-arm64-napi-4.4.5.tgz", - "integrity": "sha512-Myy6jzYnr2PRiEEASgr63QmQGCqaTBP5w2N1GMnBZxdMJD1iqClu2E4cqAlFfAeA1Y9MpKjPIuqTr9ls7nqx/w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=16" - } - }, - "packages/modules/couchbase/node_modules/@couchbase/couchbase-darwin-x64-napi": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@couchbase/couchbase-darwin-x64-napi/-/couchbase-darwin-x64-napi-4.4.5.tgz", - "integrity": "sha512-rX9j+2TUhzWs8GOAWLIEl5KhJf5LanHoACGol7FYhZmAxC26CTNJJztSpLMgJyhc0k/JtESPUDyMW3mopTX1aw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=16" - } - }, - "packages/modules/couchbase/node_modules/@couchbase/couchbase-linux-arm64-napi": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@couchbase/couchbase-linux-arm64-napi/-/couchbase-linux-arm64-napi-4.4.5.tgz", - "integrity": "sha512-r1rMwagow538+ivhC4w1OZU+DncaXgYbTY3VdvWVYpMl/BO6bXaa5P89jyKREnqWGieItVYXWupNote2HqfQog==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16" - } - }, - "packages/modules/couchbase/node_modules/@couchbase/couchbase-linux-x64-napi": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@couchbase/couchbase-linux-x64-napi/-/couchbase-linux-x64-napi-4.4.5.tgz", - "integrity": "sha512-hTLxwOeQukfP6Y2R8ZuvQpCpwhUt2VK9BHSrAxv2Vx3PUyVk19VsM46beR93rryqinB3Gdc/at+etU7dYFCHBw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16" - } - }, - "packages/modules/couchbase/node_modules/@couchbase/couchbase-linuxmusl-arm64-napi": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@couchbase/couchbase-linuxmusl-arm64-napi/-/couchbase-linuxmusl-arm64-napi-4.4.5.tgz", - "integrity": "sha512-7tlxGjdDDZy5wgDOCW7aJm9Ve6Gc31tJHd0R2HcHZVESaTUeHf0mLdJp2vtDYOhY0OCytQqaubkp7VIR7nHR4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16" - } - }, - "packages/modules/couchbase/node_modules/@couchbase/couchbase-linuxmusl-x64-napi": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@couchbase/couchbase-linuxmusl-x64-napi/-/couchbase-linuxmusl-x64-napi-4.4.5.tgz", - "integrity": "sha512-JA6xp4hgqZkhe0/I6dNTHynC5z3fr/rjgQzqWjdomGS+V+CiUekQOvJPEiBWbvfGnzBJf0KIMm7+OQ/d/w8guw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16" - } - }, - "packages/modules/couchbase/node_modules/@couchbase/couchbase-win32-x64-napi": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@couchbase/couchbase-win32-x64-napi/-/couchbase-win32-x64-napi-4.4.5.tgz", - "integrity": "sha512-acVe9Bq22Ml/bVoh3z82o+bVIQTNsauRmuX7wH+Jezk/2he0J0+DNWj53y6o/cfv4YQgbUhzTe5u/7FR6mEMYg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=16" - } - }, - "packages/modules/couchbase/node_modules/couchbase": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/couchbase/-/couchbase-4.4.5.tgz", - "integrity": "sha512-Y3jvI+aHMG0Gs5jvjlvT10paN1XheCe4THceX6ykIzvECh3I0MI/W1bcBKbrpz9hNJLresXf/FuFNPJNG4HqXA==", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "cmake-js": "^7.3.0", - "node-addon-api": "^8.0.0" - }, - "engines": { - "node": ">=16" - }, - "optionalDependencies": { - "@couchbase/couchbase-darwin-arm64-napi": "4.4.5", - "@couchbase/couchbase-darwin-x64-napi": "4.4.5", - "@couchbase/couchbase-linux-arm64-napi": "4.4.5", - "@couchbase/couchbase-linux-x64-napi": "4.4.5", - "@couchbase/couchbase-linuxmusl-arm64-napi": "4.4.5", - "@couchbase/couchbase-linuxmusl-x64-napi": "4.4.5", - "@couchbase/couchbase-win32-x64-napi": "4.4.5" + "couchbase": "4.4.0" } }, "packages/modules/elasticsearch": { diff --git a/packages/modules/couchbase/package.json b/packages/modules/couchbase/package.json index 89be3191d..1c0b8d98a 100644 --- a/packages/modules/couchbase/package.json +++ b/packages/modules/couchbase/package.json @@ -32,6 +32,6 @@ "testcontainers": "^11.0.0" }, "devDependencies": { - "couchbase": "^4.4.5" + "couchbase": "4.4.0" } } From 411d3bffdd35ec25815b5cc5d2a24f08cb251f7b Mon Sep 17 00:00:00 2001 From: Cristian Greco Date: Tue, 27 May 2025 21:34:13 +0100 Subject: [PATCH 2/4] Add dependabot for Docker --- .github/dependabot.yml | 47 +++++++++++++++++++ packages/modules/arangodb/Dockerfile | 1 + .../arangodb/src/arangodb-container.test.ts | 3 +- packages/modules/azurecosmosdb/Dockerfile | 1 + .../azure-cosmosdb-emulator-container.test.ts | 3 +- packages/modules/azurite/Dockerfile | 1 + .../azurite/src/azurite-container.test.ts | 3 +- packages/modules/cassandra/Dockerfile | 1 + .../cassandra/src/cassandra-container.test.ts | 3 +- packages/modules/chromadb/Dockerfile | 1 + .../chromadb/src/chromadb-container.test.ts | 3 +- packages/modules/clickhouse/Dockerfile | 1 + .../src/clickhouse-container.test.ts | 3 +- .../modules/clickhouse/tsconfig.build.json | 2 +- packages/modules/clickhouse/tsconfig.json | 18 +++++-- packages/modules/cockroachdb/Dockerfile | 1 + .../src/cockroachdb-container.test.ts | 3 +- packages/modules/couchbase/Dockerfile | 1 + packages/modules/elasticsearch/Dockerfile | 1 + .../src/elasticsearch-container.test.ts | 3 +- packages/modules/etcd/Dockerfile | 1 + .../modules/etcd/src/etcd-container.test.ts | 3 +- packages/modules/gcloud/Dockerfile | 1 + .../src/bigquery-emulator-container.test.ts | 3 +- .../cloudstorage-emulator-container.test.ts | 3 +- .../src/datastore-emulator-container.test.ts | 3 +- .../src/firestore-emulator-container.test.ts | 3 +- .../src/pubsub-emulator-container.test.ts | 3 +- packages/modules/hivemq/Dockerfile | 1 + .../hivemq/src/hivemq-container.test.ts | 4 +- packages/modules/k3s/Dockerfile | 1 + packages/modules/kafka/Dockerfile | 1 + .../modules/kafka/src/kafka-container.test.ts | 3 +- packages/modules/kurrentdb/Dockerfile | 1 + .../kurrentdb/src/kurrentdb-container.test.ts | 3 +- packages/modules/localstack/Dockerfile | 1 + .../src/localstack-container.test.ts | 3 +- packages/modules/mariadb/Dockerfile | 1 + .../mariadb/src/mariadb-container.test.ts | 3 +- packages/modules/minio/Dockerfile | 1 + .../modules/minio/src/minio-container.test.ts | 3 +- packages/modules/mockserver/Dockerfile | 1 + .../src/mockserver-container.test.ts | 3 +- packages/modules/mongodb/Dockerfile | 1 + .../mongodb/src/mongodb-container.test.ts | 3 +- packages/modules/mssqlserver/Dockerfile | 1 + .../src/mssqlserver-container.test.ts | 3 +- packages/modules/mysql/Dockerfile | 1 + .../modules/mysql/src/mysql-container.test.ts | 3 +- packages/modules/nats/Dockerfile | 1 + .../modules/nats/src/nats-container.test.ts | 3 +- packages/modules/neo4j/Dockerfile | 1 + .../modules/neo4j/src/neo4j-container.test.ts | 3 +- packages/modules/ollama/Dockerfile | 1 + .../ollama/src/ollama-container.test.ts | 3 +- packages/modules/postgresql/Dockerfile | 1 + .../postgresql/src/pgvector-container.test.ts | 3 +- .../postgresql/src/postgis-container.test.ts | 3 +- .../src/postgresql-container-snapshot.test.ts | 3 +- .../src/postgresql-container.test.ts | 3 +- .../src/timescale-container.test.ts | 3 +- packages/modules/qdrant/Dockerfile | 1 + .../qdrant/src/qdrant-container.test.ts | 3 +- packages/modules/rabbitmq/Dockerfile | 1 + .../rabbitmq/src/rabbitmq-container.test.ts | 3 +- packages/modules/redis/Dockerfile | 1 + .../modules/redis/src/redis-container.test.ts | 3 +- packages/modules/redpanda/Dockerfile | 1 + .../redpanda/src/redpanda-container.test.ts | 4 +- packages/modules/scylladb/Dockerfile | 1 + .../scylladb/src/scylladb-container.test.ts | 3 +- packages/modules/selenium/Dockerfile | 1 + packages/modules/toxiproxy/Dockerfile | 1 + .../toxiproxy/src/toxiproxy-container.test.ts | 3 +- packages/modules/valkey/Dockerfile | 1 + .../valkey/src/valkey-container.test.ts | 3 +- packages/modules/weaviate/Dockerfile | 1 + .../weaviate/src/weaviate-container.test.ts | 3 +- .../testcontainers/src/utils/test-helper.ts | 9 ++++ 79 files changed, 187 insertions(+), 46 deletions(-) create mode 100644 packages/modules/arangodb/Dockerfile create mode 100644 packages/modules/azurecosmosdb/Dockerfile create mode 100644 packages/modules/azurite/Dockerfile create mode 100644 packages/modules/cassandra/Dockerfile create mode 100644 packages/modules/chromadb/Dockerfile create mode 100644 packages/modules/clickhouse/Dockerfile create mode 100644 packages/modules/cockroachdb/Dockerfile create mode 100644 packages/modules/couchbase/Dockerfile create mode 100644 packages/modules/elasticsearch/Dockerfile create mode 100644 packages/modules/etcd/Dockerfile create mode 100644 packages/modules/gcloud/Dockerfile create mode 100644 packages/modules/hivemq/Dockerfile create mode 100644 packages/modules/k3s/Dockerfile create mode 100644 packages/modules/kafka/Dockerfile create mode 100644 packages/modules/kurrentdb/Dockerfile create mode 100644 packages/modules/localstack/Dockerfile create mode 100644 packages/modules/mariadb/Dockerfile create mode 100644 packages/modules/minio/Dockerfile create mode 100644 packages/modules/mockserver/Dockerfile create mode 100644 packages/modules/mongodb/Dockerfile create mode 100644 packages/modules/mssqlserver/Dockerfile create mode 100644 packages/modules/mysql/Dockerfile create mode 100644 packages/modules/nats/Dockerfile create mode 100644 packages/modules/neo4j/Dockerfile create mode 100644 packages/modules/ollama/Dockerfile create mode 100644 packages/modules/postgresql/Dockerfile create mode 100644 packages/modules/qdrant/Dockerfile create mode 100644 packages/modules/rabbitmq/Dockerfile create mode 100644 packages/modules/redis/Dockerfile create mode 100644 packages/modules/redpanda/Dockerfile create mode 100644 packages/modules/scylladb/Dockerfile create mode 100644 packages/modules/selenium/Dockerfile create mode 100644 packages/modules/toxiproxy/Dockerfile create mode 100644 packages/modules/valkey/Dockerfile create mode 100644 packages/modules/weaviate/Dockerfile diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 53775cd8a..55bbdb48d 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -49,6 +49,53 @@ updates: patterns: - "*" + - package-ecosystem: "docker" + directories: + - "/packages/modules/arangodb" + - "/packages/modules/azurecosmosdb" + - "/packages/modules/azurite" + - "/packages/modules/cassandra" + - "/packages/modules/chromadb" + - "/packages/modules/clickhouse" + - "/packages/modules/cockroachdb" + - "/packages/modules/couchbase" + - "/packages/modules/elasticsearch" + - "/packages/modules/etcd" + - "/packages/modules/gcloud" + - "/packages/modules/hivemq" + - "/packages/modules/k3s" + - "/packages/modules/kafka" + - "/packages/modules/localstack" + - "/packages/modules/mariadb" + - "/packages/modules/minio" + - "/packages/modules/mockserver" + - "/packages/modules/mongodb" + - "/packages/modules/mssqlserver" + - "/packages/modules/mysql" + - "/packages/modules/nats" + - "/packages/modules/neo4j" + - "/packages/modules/ollama" + - "/packages/modules/postgresql" + - "/packages/modules/qdrant" + - "/packages/modules/rabbitmq" + - "/packages/modules/redis" + - "/packages/modules/redpanda" + - "/packages/modules/scylladb" + - "/packages/modules/selenium" + - "/packages/modules/toxiproxy" + - "/packages/modules/valkey" + - "/packages/modules/weaviate" + schedule: + interval: "weekly" + labels: + - "dependencies" + - "docker" + groups: + dependencies: + patterns: + - "*" + + - package-ecosystem: "github-actions" directory: "/" schedule: diff --git a/packages/modules/arangodb/Dockerfile b/packages/modules/arangodb/Dockerfile new file mode 100644 index 000000000..1bdecdd6f --- /dev/null +++ b/packages/modules/arangodb/Dockerfile @@ -0,0 +1 @@ +FROM arangodb:3.10.0 diff --git a/packages/modules/arangodb/src/arangodb-container.test.ts b/packages/modules/arangodb/src/arangodb-container.test.ts index 8da91947b..2bc2a3052 100755 --- a/packages/modules/arangodb/src/arangodb-container.test.ts +++ b/packages/modules/arangodb/src/arangodb-container.test.ts @@ -1,7 +1,8 @@ import { Database } from "arangojs"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { ArangoDBContainer } from "./arangodb-container"; -const IMAGE = "arangodb:3.10.0"; +const IMAGE = getImage(__dirname); describe("ArangoDB", { timeout: 180_000 }, () => { // connect { diff --git a/packages/modules/azurecosmosdb/Dockerfile b/packages/modules/azurecosmosdb/Dockerfile new file mode 100644 index 000000000..46218b94b --- /dev/null +++ b/packages/modules/azurecosmosdb/Dockerfile @@ -0,0 +1 @@ +FROM mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-EN20250228 diff --git a/packages/modules/azurecosmosdb/src/azure-cosmosdb-emulator-container.test.ts b/packages/modules/azurecosmosdb/src/azure-cosmosdb-emulator-container.test.ts index 7ae1e6321..4cf569cc7 100644 --- a/packages/modules/azurecosmosdb/src/azure-cosmosdb-emulator-container.test.ts +++ b/packages/modules/azurecosmosdb/src/azure-cosmosdb-emulator-container.test.ts @@ -1,8 +1,9 @@ import { CosmosClient, PartitionKeyKind } from "@azure/cosmos"; import https from "node:https"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { AzureCosmosDbEmulatorContainer } from "./azure-cosmosdb-emulator-container"; -const IMAGE = "mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-EN20250228"; +const IMAGE = getImage(__dirname); describe("AzureCosmosDbEmulatorContainer", { timeout: 180_000 }, async () => { it("should set https protocol", async () => { diff --git a/packages/modules/azurite/Dockerfile b/packages/modules/azurite/Dockerfile new file mode 100644 index 000000000..1eb09dc08 --- /dev/null +++ b/packages/modules/azurite/Dockerfile @@ -0,0 +1 @@ +FROM mcr.microsoft.com/azure-storage/azurite:3.33.0 diff --git a/packages/modules/azurite/src/azurite-container.test.ts b/packages/modules/azurite/src/azurite-container.test.ts index 1aacd6e04..a892df646 100644 --- a/packages/modules/azurite/src/azurite-container.test.ts +++ b/packages/modules/azurite/src/azurite-container.test.ts @@ -1,9 +1,10 @@ import { TableClient, TableEntity } from "@azure/data-tables"; import { BlobServiceClient, StorageSharedKeyCredential } from "@azure/storage-blob"; import { QueueServiceClient } from "@azure/storage-queue"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { AzuriteContainer } from "./azurite-container"; -const IMAGE = "mcr.microsoft.com/azure-storage/azurite:3.34.0"; +const IMAGE = getImage(__dirname); describe("Azurite", { timeout: 240_000 }, () => { // uploadAndDownloadBlob { diff --git a/packages/modules/cassandra/Dockerfile b/packages/modules/cassandra/Dockerfile new file mode 100644 index 000000000..b25c4afa0 --- /dev/null +++ b/packages/modules/cassandra/Dockerfile @@ -0,0 +1 @@ +FROM cassandra:5.0.2 diff --git a/packages/modules/cassandra/src/cassandra-container.test.ts b/packages/modules/cassandra/src/cassandra-container.test.ts index 75af283b8..c8a5bf18a 100644 --- a/packages/modules/cassandra/src/cassandra-container.test.ts +++ b/packages/modules/cassandra/src/cassandra-container.test.ts @@ -1,7 +1,8 @@ import { Client } from "cassandra-driver"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { CassandraContainer } from "./cassandra-container"; -const IMAGE = "cassandra:5.0.2"; +const IMAGE = getImage(__dirname); describe("Cassandra", { timeout: 240_000 }, () => { // connectWithDefaultCredentials { diff --git a/packages/modules/chromadb/Dockerfile b/packages/modules/chromadb/Dockerfile new file mode 100644 index 000000000..bf02fd020 --- /dev/null +++ b/packages/modules/chromadb/Dockerfile @@ -0,0 +1 @@ +FROM chromadb/chroma:0.6.3 diff --git a/packages/modules/chromadb/src/chromadb-container.test.ts b/packages/modules/chromadb/src/chromadb-container.test.ts index 49619da6f..53d2577e2 100755 --- a/packages/modules/chromadb/src/chromadb-container.test.ts +++ b/packages/modules/chromadb/src/chromadb-container.test.ts @@ -3,9 +3,10 @@ import fs from "node:fs"; import os from "node:os"; import path from "node:path"; import { GenericContainer } from "testcontainers"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { ChromaDBContainer, StartedChromaDBContainer } from "./chromadb-container"; -const IMAGE = "chromadb/chroma:0.6.3"; +const IMAGE = getImage(__dirname); describe("ChromaDB", { timeout: 360_000 }, () => { // startContainer { diff --git a/packages/modules/clickhouse/Dockerfile b/packages/modules/clickhouse/Dockerfile new file mode 100644 index 000000000..86e1b49cb --- /dev/null +++ b/packages/modules/clickhouse/Dockerfile @@ -0,0 +1 @@ +FROM clickhouse/clickhouse-server:25.3-alpine diff --git a/packages/modules/clickhouse/src/clickhouse-container.test.ts b/packages/modules/clickhouse/src/clickhouse-container.test.ts index 290435fcb..b2773b073 100644 --- a/packages/modules/clickhouse/src/clickhouse-container.test.ts +++ b/packages/modules/clickhouse/src/clickhouse-container.test.ts @@ -1,7 +1,8 @@ import { createClient } from "@clickhouse/client"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { ClickHouseContainer } from "./clickhouse-container"; -const IMAGE = "clickhouse/clickhouse-server:25.3-alpine"; +const IMAGE = getImage(__dirname); interface ClickHouseQueryResponse { data: T[]; diff --git a/packages/modules/clickhouse/tsconfig.build.json b/packages/modules/clickhouse/tsconfig.build.json index e5121688c..e9236a57d 100644 --- a/packages/modules/clickhouse/tsconfig.build.json +++ b/packages/modules/clickhouse/tsconfig.build.json @@ -9,4 +9,4 @@ "path": "../../testcontainers" } ] -} \ No newline at end of file +} diff --git a/packages/modules/clickhouse/tsconfig.json b/packages/modules/clickhouse/tsconfig.json index 1c0258e13..0e863cb02 100644 --- a/packages/modules/clickhouse/tsconfig.json +++ b/packages/modules/clickhouse/tsconfig.json @@ -1,8 +1,20 @@ { "extends": "../../../tsconfig.base.json", "compilerOptions": { + "rootDir": "src", "outDir": "build", - "rootDir": "src" + "paths": { + "testcontainers": [ + "../../testcontainers/src" + ] + } }, - "include": ["src/**/*"] -} \ No newline at end of file + "exclude": [ + "build" + ], + "references": [ + { + "path": "../../testcontainers" + } + ] +} diff --git a/packages/modules/cockroachdb/Dockerfile b/packages/modules/cockroachdb/Dockerfile new file mode 100644 index 000000000..2fa829971 --- /dev/null +++ b/packages/modules/cockroachdb/Dockerfile @@ -0,0 +1 @@ +FROM cockroachdb/cockroach:v24.3.5 diff --git a/packages/modules/cockroachdb/src/cockroachdb-container.test.ts b/packages/modules/cockroachdb/src/cockroachdb-container.test.ts index 2152211ea..5dbbe7f8a 100644 --- a/packages/modules/cockroachdb/src/cockroachdb-container.test.ts +++ b/packages/modules/cockroachdb/src/cockroachdb-container.test.ts @@ -1,7 +1,8 @@ import { Client } from "pg"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { CockroachDbContainer } from "./cockroachdb-container"; -const IMAGE = "cockroachdb/cockroach:v24.3.5"; +const IMAGE = getImage(__dirname); describe("CockroachDbContainer", { timeout: 180_000 }, () => { // connect { diff --git a/packages/modules/couchbase/Dockerfile b/packages/modules/couchbase/Dockerfile new file mode 100644 index 000000000..8a236788c --- /dev/null +++ b/packages/modules/couchbase/Dockerfile @@ -0,0 +1 @@ +FROM couchbase/server:6.5.1 diff --git a/packages/modules/elasticsearch/Dockerfile b/packages/modules/elasticsearch/Dockerfile new file mode 100644 index 000000000..0f98a170f --- /dev/null +++ b/packages/modules/elasticsearch/Dockerfile @@ -0,0 +1 @@ +FROM elasticsearch:7.17.7 diff --git a/packages/modules/elasticsearch/src/elasticsearch-container.test.ts b/packages/modules/elasticsearch/src/elasticsearch-container.test.ts index f51170686..e53b47636 100644 --- a/packages/modules/elasticsearch/src/elasticsearch-container.test.ts +++ b/packages/modules/elasticsearch/src/elasticsearch-container.test.ts @@ -1,7 +1,8 @@ import { Client } from "@elastic/elasticsearch"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { ElasticsearchContainer } from "./elasticsearch-container"; -const IMAGE = "elasticsearch:7.17.7"; +const IMAGE = getImage(__dirname); describe("ElasticsearchContainer", { timeout: 180_000 }, () => { // createIndex { diff --git a/packages/modules/etcd/Dockerfile b/packages/modules/etcd/Dockerfile new file mode 100644 index 000000000..b93d89586 --- /dev/null +++ b/packages/modules/etcd/Dockerfile @@ -0,0 +1 @@ +FROM quay.io/coreos/etcd:v3.6.0 diff --git a/packages/modules/etcd/src/etcd-container.test.ts b/packages/modules/etcd/src/etcd-container.test.ts index cc1d7bb6a..f8fbf333d 100644 --- a/packages/modules/etcd/src/etcd-container.test.ts +++ b/packages/modules/etcd/src/etcd-container.test.ts @@ -1,8 +1,9 @@ import { Etcd3 } from "etcd3"; import { setTimeout } from "node:timers/promises"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { EtcdContainer, StartedEtcdContainer } from "./etcd-container"; -const IMAGE = "quay.io/coreos/etcd:v3.6.0"; +const IMAGE = getImage(__dirname); describe("etcd", () => { it("should construct a container", { timeout: 30_000 }, async () => { diff --git a/packages/modules/gcloud/Dockerfile b/packages/modules/gcloud/Dockerfile new file mode 100644 index 000000000..1ac7f9e09 --- /dev/null +++ b/packages/modules/gcloud/Dockerfile @@ -0,0 +1 @@ +FROM gcr.io/google.com/cloudsdktool/cloud-sdk:517.0.0-emulators diff --git a/packages/modules/gcloud/src/bigquery-emulator-container.test.ts b/packages/modules/gcloud/src/bigquery-emulator-container.test.ts index 18cda4aea..e34666e58 100644 --- a/packages/modules/gcloud/src/bigquery-emulator-container.test.ts +++ b/packages/modules/gcloud/src/bigquery-emulator-container.test.ts @@ -1,7 +1,8 @@ import { BigQuery, TableSchema } from "@google-cloud/bigquery"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { BigQueryEmulatorContainer, StartedBigQueryEmulatorContainer } from "./bigquery-emulator-container"; -const IMAGE = "ghcr.io/goccy/bigquery-emulator:0.6.6"; +const IMAGE = getImage(__dirname); describe("BigQueryEmulatorContainer", { timeout: 240_000 }, () => { it("should work using default version", async () => { diff --git a/packages/modules/gcloud/src/cloudstorage-emulator-container.test.ts b/packages/modules/gcloud/src/cloudstorage-emulator-container.test.ts index 4f50d1016..53b6db377 100644 --- a/packages/modules/gcloud/src/cloudstorage-emulator-container.test.ts +++ b/packages/modules/gcloud/src/cloudstorage-emulator-container.test.ts @@ -1,9 +1,10 @@ import { Storage } from "@google-cloud/storage"; import { setupServer } from "msw/node"; import { ReadableStream } from "node:stream/web"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { CloudStorageEmulatorContainer, StartedCloudStorageEmulatorContainer } from "./cloudstorage-emulator-container"; -const IMAGE = "fsouza/fake-gcs-server:1.52.2"; +const IMAGE = getImage(__dirname); async function getRequestBodyFromReadableStream(stream: ReadableStream): Promise { const decoder = new TextDecoder(); diff --git a/packages/modules/gcloud/src/datastore-emulator-container.test.ts b/packages/modules/gcloud/src/datastore-emulator-container.test.ts index 48de3db2a..d3c03c1b0 100644 --- a/packages/modules/gcloud/src/datastore-emulator-container.test.ts +++ b/packages/modules/gcloud/src/datastore-emulator-container.test.ts @@ -1,7 +1,8 @@ import { Datastore } from "@google-cloud/datastore"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { DatastoreEmulatorContainer, StartedDatastoreEmulatorContainer } from "./datastore-emulator-container"; -const IMAGE = "gcr.io/google.com/cloudsdktool/cloud-sdk:517.0.0-emulators"; +const IMAGE = getImage(__dirname); describe("DatastoreEmulatorContainer", { timeout: 240_000 }, () => { // datastore4 { diff --git a/packages/modules/gcloud/src/firestore-emulator-container.test.ts b/packages/modules/gcloud/src/firestore-emulator-container.test.ts index 3aedf5392..6f8796c60 100644 --- a/packages/modules/gcloud/src/firestore-emulator-container.test.ts +++ b/packages/modules/gcloud/src/firestore-emulator-container.test.ts @@ -1,7 +1,8 @@ import admin from "firebase-admin"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { FirestoreEmulatorContainer, StartedFirestoreEmulatorContainer } from "./firestore-emulator-container"; -const IMAGE = "gcr.io/google.com/cloudsdktool/cloud-sdk:517.0.0-emulators"; +const IMAGE = getImage(__dirname); describe("FirestoreEmulatorContainer", { timeout: 240_000 }, () => { afterEach(async () => { diff --git a/packages/modules/gcloud/src/pubsub-emulator-container.test.ts b/packages/modules/gcloud/src/pubsub-emulator-container.test.ts index e53507431..2d3fcb67f 100644 --- a/packages/modules/gcloud/src/pubsub-emulator-container.test.ts +++ b/packages/modules/gcloud/src/pubsub-emulator-container.test.ts @@ -1,7 +1,8 @@ import { PubSub } from "@google-cloud/pubsub"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { PubSubEmulatorContainer, StartedPubSubEmulatorContainer } from "./pubsub-emulator-container"; -const IMAGE = "gcr.io/google.com/cloudsdktool/google-cloud-cli:517.0.0-emulators"; +const IMAGE = getImage(__dirname); describe("PubSubEmulatorContainer", { timeout: 240_000 }, () => { it("should work using default version", async () => { diff --git a/packages/modules/hivemq/Dockerfile b/packages/modules/hivemq/Dockerfile new file mode 100644 index 000000000..22df0a970 --- /dev/null +++ b/packages/modules/hivemq/Dockerfile @@ -0,0 +1 @@ +FROM hivemq/hivemq-ce:2023.5 diff --git a/packages/modules/hivemq/src/hivemq-container.test.ts b/packages/modules/hivemq/src/hivemq-container.test.ts index 65860cb19..b88c63f8b 100644 --- a/packages/modules/hivemq/src/hivemq-container.test.ts +++ b/packages/modules/hivemq/src/hivemq-container.test.ts @@ -1,8 +1,8 @@ import mqtt from "mqtt"; import { expect } from "vitest"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { HiveMQContainer } from "./hivemq-container"; - -const IMAGE = "hivemq/hivemq-ce:2023.5"; +const IMAGE = getImage(__dirname); describe("HiveMQContainer", { timeout: 240_000 }, () => { // connect { diff --git a/packages/modules/k3s/Dockerfile b/packages/modules/k3s/Dockerfile new file mode 100644 index 000000000..8607a0b97 --- /dev/null +++ b/packages/modules/k3s/Dockerfile @@ -0,0 +1 @@ +FROM rancher/k3s:v1.31.2-k3s1 diff --git a/packages/modules/kafka/Dockerfile b/packages/modules/kafka/Dockerfile new file mode 100644 index 000000000..595d60366 --- /dev/null +++ b/packages/modules/kafka/Dockerfile @@ -0,0 +1 @@ +FROM confluentinc/cp-kafka:7.2.2 diff --git a/packages/modules/kafka/src/kafka-container.test.ts b/packages/modules/kafka/src/kafka-container.test.ts index 39c886578..658b6c1d4 100644 --- a/packages/modules/kafka/src/kafka-container.test.ts +++ b/packages/modules/kafka/src/kafka-container.test.ts @@ -2,9 +2,10 @@ import fs from "fs"; import { Kafka, KafkaConfig, logLevel } from "kafkajs"; import path from "path"; import { GenericContainer, Network, StartedTestContainer } from "testcontainers"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { KafkaContainer } from "./kafka-container"; -const IMAGE = "confluentinc/cp-kafka:7.2.2"; +const IMAGE = getImage(__dirname); describe("KafkaContainer", { timeout: 240_000 }, () => { // connectBuiltInZK { diff --git a/packages/modules/kurrentdb/Dockerfile b/packages/modules/kurrentdb/Dockerfile new file mode 100644 index 000000000..d9d4f0007 --- /dev/null +++ b/packages/modules/kurrentdb/Dockerfile @@ -0,0 +1 @@ +FROM kurrentplatform/kurrentdb:25.0 diff --git a/packages/modules/kurrentdb/src/kurrentdb-container.test.ts b/packages/modules/kurrentdb/src/kurrentdb-container.test.ts index 0fff3c557..f8cf0d10a 100644 --- a/packages/modules/kurrentdb/src/kurrentdb-container.test.ts +++ b/packages/modules/kurrentdb/src/kurrentdb-container.test.ts @@ -1,7 +1,8 @@ import { KurrentDBClient, StreamSubscription } from "@kurrent/kurrentdb-client"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { KurrentDbContainer } from "./kurrentdb-container"; -const IMAGE = "kurrentplatform/kurrentdb:25.0"; +const IMAGE = getImage(__dirname); describe("KurrentDbContainer", { timeout: 240_000 }, () => { // startContainer { diff --git a/packages/modules/localstack/Dockerfile b/packages/modules/localstack/Dockerfile new file mode 100644 index 000000000..0b46b528c --- /dev/null +++ b/packages/modules/localstack/Dockerfile @@ -0,0 +1 @@ +FROM localstack/localstack:2.2.0 diff --git a/packages/modules/localstack/src/localstack-container.test.ts b/packages/modules/localstack/src/localstack-container.test.ts index 0968e6e48..69d9e5837 100644 --- a/packages/modules/localstack/src/localstack-container.test.ts +++ b/packages/modules/localstack/src/localstack-container.test.ts @@ -1,8 +1,9 @@ import { CreateBucketCommand, HeadBucketCommand, S3Client } from "@aws-sdk/client-s3"; import { GenericContainer, LABEL_TESTCONTAINERS_SESSION_ID, log, Network, StartedTestContainer } from "testcontainers"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { LOCALSTACK_PORT, LocalstackContainer } from "./localstack-container"; -const IMAGE = "localstack/localstack:2.2.0"; +const IMAGE = getImage(__dirname); const runAwsCliAgainstDockerNetworkContainer = async ( command: string, diff --git a/packages/modules/mariadb/Dockerfile b/packages/modules/mariadb/Dockerfile new file mode 100644 index 000000000..c7b504ef2 --- /dev/null +++ b/packages/modules/mariadb/Dockerfile @@ -0,0 +1 @@ +FROM mariadb:11.5.2 diff --git a/packages/modules/mariadb/src/mariadb-container.test.ts b/packages/modules/mariadb/src/mariadb-container.test.ts index 6b53eb605..21078a817 100644 --- a/packages/modules/mariadb/src/mariadb-container.test.ts +++ b/packages/modules/mariadb/src/mariadb-container.test.ts @@ -1,7 +1,8 @@ import mariadb from "mariadb"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { MariaDbContainer } from "./mariadb-container"; -const IMAGE = "mariadb:11.5.2"; +const IMAGE = getImage(__dirname); describe("MariaDb", { timeout: 240_000 }, () => { // connect { diff --git a/packages/modules/minio/Dockerfile b/packages/modules/minio/Dockerfile new file mode 100644 index 000000000..57b24ba5d --- /dev/null +++ b/packages/modules/minio/Dockerfile @@ -0,0 +1 @@ +FROM minio/minio:RELEASE.2024-12-13T22-19-12Z diff --git a/packages/modules/minio/src/minio-container.test.ts b/packages/modules/minio/src/minio-container.test.ts index 9b36df195..b636a444e 100644 --- a/packages/modules/minio/src/minio-container.test.ts +++ b/packages/modules/minio/src/minio-container.test.ts @@ -1,7 +1,8 @@ import * as minio from "minio"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { MinioContainer } from "./minio-container"; -const IMAGE = "minio/minio:RELEASE.2024-12-13T22-19-12Z"; +const IMAGE = getImage(__dirname); describe("MinIO", { timeout: 240_000 }, () => { // connectWithDefaultCredentials { diff --git a/packages/modules/mockserver/Dockerfile b/packages/modules/mockserver/Dockerfile new file mode 100644 index 000000000..b33ecc065 --- /dev/null +++ b/packages/modules/mockserver/Dockerfile @@ -0,0 +1 @@ +FROM mockserver/mockserver:5.15.0 diff --git a/packages/modules/mockserver/src/mockserver-container.test.ts b/packages/modules/mockserver/src/mockserver-container.test.ts index fd31ec01f..a379b95a9 100644 --- a/packages/modules/mockserver/src/mockserver-container.test.ts +++ b/packages/modules/mockserver/src/mockserver-container.test.ts @@ -1,8 +1,9 @@ import { mockServerClient } from "mockserver-client"; import superagent from "superagent"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { MockserverContainer } from "./mockserver-container"; -const IMAGE = "mockserver/mockserver:5.15.0"; +const IMAGE = getImage(__dirname); describe("MockserverContainer", { timeout: 240_000 }, () => { // startContainer { diff --git a/packages/modules/mongodb/Dockerfile b/packages/modules/mongodb/Dockerfile new file mode 100644 index 000000000..1670b8066 --- /dev/null +++ b/packages/modules/mongodb/Dockerfile @@ -0,0 +1 @@ +FROM mongo:4.0.1 diff --git a/packages/modules/mongodb/src/mongodb-container.test.ts b/packages/modules/mongodb/src/mongodb-container.test.ts index da3df698f..b038a64dd 100644 --- a/packages/modules/mongodb/src/mongodb-container.test.ts +++ b/packages/modules/mongodb/src/mongodb-container.test.ts @@ -1,7 +1,8 @@ import mongoose from "mongoose"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { MongoDBContainer } from "./mongodb-container"; -const IMAGE = "mongo:4.0.1"; +const IMAGE = getImage(__dirname); describe("MongodbContainer", { timeout: 240_000 }, () => { // connect4 { diff --git a/packages/modules/mssqlserver/Dockerfile b/packages/modules/mssqlserver/Dockerfile new file mode 100644 index 000000000..19d735d48 --- /dev/null +++ b/packages/modules/mssqlserver/Dockerfile @@ -0,0 +1 @@ +FROM mcr.microsoft.com/mssql/server:2022-CU13-ubuntu-22.04 diff --git a/packages/modules/mssqlserver/src/mssqlserver-container.test.ts b/packages/modules/mssqlserver/src/mssqlserver-container.test.ts index 2da637b39..813493854 100644 --- a/packages/modules/mssqlserver/src/mssqlserver-container.test.ts +++ b/packages/modules/mssqlserver/src/mssqlserver-container.test.ts @@ -1,7 +1,8 @@ import sql, { config } from "mssql"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { MSSQLServerContainer } from "./mssqlserver-container"; -const IMAGE = "mcr.microsoft.com/mssql/server:2022-CU13-ubuntu-22.04"; +const IMAGE = getImage(__dirname); describe("MSSqlServerContainer", { timeout: 180_000 }, () => { // connect { diff --git a/packages/modules/mysql/Dockerfile b/packages/modules/mysql/Dockerfile new file mode 100644 index 000000000..cf7d17f9f --- /dev/null +++ b/packages/modules/mysql/Dockerfile @@ -0,0 +1 @@ +FROM mysql:8.0.31 diff --git a/packages/modules/mysql/src/mysql-container.test.ts b/packages/modules/mysql/src/mysql-container.test.ts index 3ff3b9fc0..cc6b80484 100644 --- a/packages/modules/mysql/src/mysql-container.test.ts +++ b/packages/modules/mysql/src/mysql-container.test.ts @@ -1,7 +1,8 @@ import { createConnection } from "mysql2/promise"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { MySqlContainer } from "./mysql-container"; -const IMAGE = "mysql:8.0.31"; +const IMAGE = getImage(__dirname); describe("MySqlContainer", { timeout: 240_000 }, () => { // connect { diff --git a/packages/modules/nats/Dockerfile b/packages/modules/nats/Dockerfile new file mode 100644 index 000000000..a9b07b60a --- /dev/null +++ b/packages/modules/nats/Dockerfile @@ -0,0 +1 @@ +FROM nats:2.8.4-alpine diff --git a/packages/modules/nats/src/nats-container.test.ts b/packages/modules/nats/src/nats-container.test.ts index b5686113c..ef73b2a5a 100644 --- a/packages/modules/nats/src/nats-container.test.ts +++ b/packages/modules/nats/src/nats-container.test.ts @@ -1,8 +1,9 @@ import { jetstreamManager } from "@nats-io/jetstream"; import { connect } from "@nats-io/transport-node"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { NatsContainer } from "./nats-container"; -const IMAGE = "nats:2.8.4-alpine"; +const IMAGE = getImage(__dirname); describe("NatsContainer", { timeout: 180_000 }, () => { // connect { diff --git a/packages/modules/neo4j/Dockerfile b/packages/modules/neo4j/Dockerfile new file mode 100644 index 000000000..237faf0b9 --- /dev/null +++ b/packages/modules/neo4j/Dockerfile @@ -0,0 +1 @@ +FROM neo4j:4.4.12 diff --git a/packages/modules/neo4j/src/neo4j-container.test.ts b/packages/modules/neo4j/src/neo4j-container.test.ts index 7da604b53..63d6894c4 100755 --- a/packages/modules/neo4j/src/neo4j-container.test.ts +++ b/packages/modules/neo4j/src/neo4j-container.test.ts @@ -1,7 +1,8 @@ import neo4j from "neo4j-driver"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { Neo4jContainer, Neo4jPlugin } from "./neo4j-container"; -const IMAGE = "neo4j:4.4.12"; +const IMAGE = getImage(__dirname); describe("Neo4jContainer", { timeout: 180_000 }, () => { // createNode { diff --git a/packages/modules/ollama/Dockerfile b/packages/modules/ollama/Dockerfile new file mode 100644 index 000000000..a5e8dd75d --- /dev/null +++ b/packages/modules/ollama/Dockerfile @@ -0,0 +1 @@ +FROM ollama/ollama:0.1.44 diff --git a/packages/modules/ollama/src/ollama-container.test.ts b/packages/modules/ollama/src/ollama-container.test.ts index 6ff7d6baa..67670b963 100644 --- a/packages/modules/ollama/src/ollama-container.test.ts +++ b/packages/modules/ollama/src/ollama-container.test.ts @@ -1,6 +1,7 @@ +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { OllamaContainer } from "./ollama-container"; -const IMAGE = "ollama/ollama:0.1.44"; +const IMAGE = getImage(__dirname); describe("OllamaContainer", { timeout: 180_000 }, () => { it("should run ollama with default config", async () => { diff --git a/packages/modules/postgresql/Dockerfile b/packages/modules/postgresql/Dockerfile new file mode 100644 index 000000000..ad09aabce --- /dev/null +++ b/packages/modules/postgresql/Dockerfile @@ -0,0 +1 @@ +FROM postgres:13.3-alpine diff --git a/packages/modules/postgresql/src/pgvector-container.test.ts b/packages/modules/postgresql/src/pgvector-container.test.ts index c7c972961..9b3960fa4 100644 --- a/packages/modules/postgresql/src/pgvector-container.test.ts +++ b/packages/modules/postgresql/src/pgvector-container.test.ts @@ -1,7 +1,8 @@ import { Client } from "pg"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { PostgreSqlContainer } from "./postgresql-container"; -const IMAGE = "pgvector/pgvector:pg16"; +const IMAGE = getImage(__dirname); describe("PgvectorContainer", { timeout: 180_000 }, () => { it("should work", async () => { diff --git a/packages/modules/postgresql/src/postgis-container.test.ts b/packages/modules/postgresql/src/postgis-container.test.ts index db86cbcac..8b40e5a7e 100644 --- a/packages/modules/postgresql/src/postgis-container.test.ts +++ b/packages/modules/postgresql/src/postgis-container.test.ts @@ -1,7 +1,8 @@ import { Client } from "pg"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { PostgreSqlContainer } from "./postgresql-container"; -const IMAGE = "postgis/postgis:16-3.4"; +const IMAGE = getImage(__dirname); describe("PostgisContainer", { timeout: 180_000 }, () => { it("should work", async () => { diff --git a/packages/modules/postgresql/src/postgresql-container-snapshot.test.ts b/packages/modules/postgresql/src/postgresql-container-snapshot.test.ts index a1e2b309d..4636c7c03 100644 --- a/packages/modules/postgresql/src/postgresql-container-snapshot.test.ts +++ b/packages/modules/postgresql/src/postgresql-container-snapshot.test.ts @@ -1,7 +1,8 @@ import { Client } from "pg"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { PostgreSqlContainer } from "./postgresql-container"; -const IMAGE = "postgres:13.3-alpine"; +const IMAGE = getImage(__dirname); describe("PostgreSqlContainer snapshot and restore", { timeout: 180_000 }, () => { // createAndRestoreFromSnapshot { diff --git a/packages/modules/postgresql/src/postgresql-container.test.ts b/packages/modules/postgresql/src/postgresql-container.test.ts index c1cd9e258..826324e56 100644 --- a/packages/modules/postgresql/src/postgresql-container.test.ts +++ b/packages/modules/postgresql/src/postgresql-container.test.ts @@ -1,7 +1,8 @@ import { Client } from "pg"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { PostgreSqlContainer } from "./postgresql-container"; -const IMAGE = "postgres:13.3-alpine"; +const IMAGE = getImage(__dirname); describe("PostgreSqlContainer", { timeout: 180_000 }, () => { // connect { diff --git a/packages/modules/postgresql/src/timescale-container.test.ts b/packages/modules/postgresql/src/timescale-container.test.ts index c66a4ba15..988115a2b 100644 --- a/packages/modules/postgresql/src/timescale-container.test.ts +++ b/packages/modules/postgresql/src/timescale-container.test.ts @@ -1,7 +1,8 @@ import { Client } from "pg"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { PostgreSqlContainer } from "./postgresql-container"; -const IMAGE = "timescale/timescaledb:2.1.0-pg11"; +const IMAGE = getImage(__dirname); describe("TimescaleContainer", { timeout: 180_000 }, () => { it("should work", async () => { diff --git a/packages/modules/qdrant/Dockerfile b/packages/modules/qdrant/Dockerfile new file mode 100644 index 000000000..f454bfec0 --- /dev/null +++ b/packages/modules/qdrant/Dockerfile @@ -0,0 +1 @@ +FROM qdrant/qdrant:v1.13.4 diff --git a/packages/modules/qdrant/src/qdrant-container.test.ts b/packages/modules/qdrant/src/qdrant-container.test.ts index 34c6d5a10..0908b5ee5 100644 --- a/packages/modules/qdrant/src/qdrant-container.test.ts +++ b/packages/modules/qdrant/src/qdrant-container.test.ts @@ -1,9 +1,10 @@ import { QdrantClient } from "@qdrant/js-client-rest"; import crypto from "crypto"; import path from "path"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { QdrantContainer } from "./qdrant-container"; -const IMAGE = "qdrant/qdrant:v1.13.4"; +const IMAGE = getImage(__dirname); describe("QdrantContainer", { timeout: 100_000 }, () => { // connectQdrantSimple { diff --git a/packages/modules/rabbitmq/Dockerfile b/packages/modules/rabbitmq/Dockerfile new file mode 100644 index 000000000..6ddc90357 --- /dev/null +++ b/packages/modules/rabbitmq/Dockerfile @@ -0,0 +1 @@ +FROM rabbitmq:3.12.11-management-alpine diff --git a/packages/modules/rabbitmq/src/rabbitmq-container.test.ts b/packages/modules/rabbitmq/src/rabbitmq-container.test.ts index 371691f10..51048cc23 100644 --- a/packages/modules/rabbitmq/src/rabbitmq-container.test.ts +++ b/packages/modules/rabbitmq/src/rabbitmq-container.test.ts @@ -1,7 +1,8 @@ import amqp from "amqplib"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { RabbitMQContainer } from "./rabbitmq-container"; -const IMAGE = "rabbitmq:3.12.11-management-alpine"; +const IMAGE = getImage(__dirname); describe("RabbitMQContainer", { timeout: 240_000 }, () => { // start { diff --git a/packages/modules/redis/Dockerfile b/packages/modules/redis/Dockerfile new file mode 100644 index 000000000..1c61a6e31 --- /dev/null +++ b/packages/modules/redis/Dockerfile @@ -0,0 +1 @@ +FROM redis:7.2 diff --git a/packages/modules/redis/src/redis-container.test.ts b/packages/modules/redis/src/redis-container.test.ts index ebe966b18..bb8df58a8 100644 --- a/packages/modules/redis/src/redis-container.test.ts +++ b/packages/modules/redis/src/redis-container.test.ts @@ -2,9 +2,10 @@ import fs from "fs"; import os from "os"; import path from "path"; import { createClient } from "redis"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { RedisContainer, StartedRedisContainer } from "./redis-container"; -const IMAGE = "redis:7.2"; +const IMAGE = getImage(__dirname); describe("RedisContainer", { timeout: 240_000 }, () => { // startContainer { diff --git a/packages/modules/redpanda/Dockerfile b/packages/modules/redpanda/Dockerfile new file mode 100644 index 000000000..ce089db54 --- /dev/null +++ b/packages/modules/redpanda/Dockerfile @@ -0,0 +1 @@ +FROM docker.redpanda.com/redpandadata/redpanda:v23.3.10 diff --git a/packages/modules/redpanda/src/redpanda-container.test.ts b/packages/modules/redpanda/src/redpanda-container.test.ts index 7c1b6a292..ab0621980 100644 --- a/packages/modules/redpanda/src/redpanda-container.test.ts +++ b/packages/modules/redpanda/src/redpanda-container.test.ts @@ -1,7 +1,7 @@ import { Kafka, KafkaConfig, logLevel } from "kafkajs"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { RedpandaContainer, StartedRedpandaContainer } from "./redpanda-container"; - -const IMAGE = "docker.redpanda.com/redpandadata/redpanda:v23.3.10"; +const IMAGE = getImage(__dirname); describe("RedpandaContainer", { timeout: 240_000 }, () => { // connectToKafka { diff --git a/packages/modules/scylladb/Dockerfile b/packages/modules/scylladb/Dockerfile new file mode 100644 index 000000000..3244e3834 --- /dev/null +++ b/packages/modules/scylladb/Dockerfile @@ -0,0 +1 @@ +FROM scylladb/scylla:6.2.0 diff --git a/packages/modules/scylladb/src/scylladb-container.test.ts b/packages/modules/scylladb/src/scylladb-container.test.ts index 1b403cee0..0b9d177f7 100644 --- a/packages/modules/scylladb/src/scylladb-container.test.ts +++ b/packages/modules/scylladb/src/scylladb-container.test.ts @@ -1,7 +1,8 @@ import { Client } from "cassandra-driver"; // Scylla uses Cassandra's driver in Node.js +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { ScyllaContainer } from "./scylladb-container"; -const IMAGE = "scylladb/scylla:6.2.0"; +const IMAGE = getImage(__dirname); describe("ScyllaDB", { timeout: 240_000 }, () => { // connectWithDefaultCredentials { diff --git a/packages/modules/selenium/Dockerfile b/packages/modules/selenium/Dockerfile new file mode 100644 index 000000000..712c57b46 --- /dev/null +++ b/packages/modules/selenium/Dockerfile @@ -0,0 +1 @@ +FROM selenium/standalone-chrome:112.0 diff --git a/packages/modules/toxiproxy/Dockerfile b/packages/modules/toxiproxy/Dockerfile new file mode 100644 index 000000000..90cbc632e --- /dev/null +++ b/packages/modules/toxiproxy/Dockerfile @@ -0,0 +1 @@ +FROM ghcr.io/shopify/toxiproxy:2.11.0 diff --git a/packages/modules/toxiproxy/src/toxiproxy-container.test.ts b/packages/modules/toxiproxy/src/toxiproxy-container.test.ts index 01ea6f4d2..f63f79691 100644 --- a/packages/modules/toxiproxy/src/toxiproxy-container.test.ts +++ b/packages/modules/toxiproxy/src/toxiproxy-container.test.ts @@ -1,8 +1,9 @@ import { createClient } from "redis"; import { GenericContainer, Network } from "testcontainers"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { ToxiProxyContainer, TPClient } from "./toxiproxy-container"; -const IMAGE = "ghcr.io/shopify/toxiproxy:2.11.0"; +const IMAGE = getImage(__dirname); describe("ToxiProxyContainer", { timeout: 240_000 }, () => { // Helper to connect to redis diff --git a/packages/modules/valkey/Dockerfile b/packages/modules/valkey/Dockerfile new file mode 100644 index 000000000..c687473f8 --- /dev/null +++ b/packages/modules/valkey/Dockerfile @@ -0,0 +1 @@ +FROM valkey/valkey:8.0 diff --git a/packages/modules/valkey/src/valkey-container.test.ts b/packages/modules/valkey/src/valkey-container.test.ts index e1d54f3f9..12e642d68 100644 --- a/packages/modules/valkey/src/valkey-container.test.ts +++ b/packages/modules/valkey/src/valkey-container.test.ts @@ -2,9 +2,10 @@ import fs from "fs"; import os from "os"; import path from "path"; import { createClient } from "redis"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { StartedValkeyContainer, ValkeyContainer } from "./valkey-container"; -const IMAGE = "valkey/valkey:8.0"; +const IMAGE = getImage(__dirname); describe("ValkeyContainer", { timeout: 240_000 }, () => { it("should connect and execute set-get", async () => { diff --git a/packages/modules/weaviate/Dockerfile b/packages/modules/weaviate/Dockerfile new file mode 100644 index 000000000..1f4d0ad7a --- /dev/null +++ b/packages/modules/weaviate/Dockerfile @@ -0,0 +1 @@ +FROM semitechnologies/weaviate:1.24.5 diff --git a/packages/modules/weaviate/src/weaviate-container.test.ts b/packages/modules/weaviate/src/weaviate-container.test.ts index 23cbde5ba..1e31ffcad 100644 --- a/packages/modules/weaviate/src/weaviate-container.test.ts +++ b/packages/modules/weaviate/src/weaviate-container.test.ts @@ -1,8 +1,9 @@ import { Environment } from "testcontainers/src/types"; import weaviate from "weaviate-ts-client"; +import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { WeaviateContainer } from "./weaviate-container"; -const IMAGE = "semitechnologies/weaviate:1.24.5"; +const IMAGE = getImage(__dirname); describe("WeaviateContainer", { timeout: 100_000 }, () => { // connectWeaviate { diff --git a/packages/testcontainers/src/utils/test-helper.ts b/packages/testcontainers/src/utils/test-helper.ts index 82592c981..3288de030 100644 --- a/packages/testcontainers/src/utils/test-helper.ts +++ b/packages/testcontainers/src/utils/test-helper.ts @@ -1,5 +1,7 @@ import { GetEventsOptions, ImageInspectInfo } from "dockerode"; import { createServer, Server } from "http"; +import fs from "node:fs"; +import path from "node:path"; import { Readable } from "stream"; import { Agent, request } from "undici"; import { IntervalRetry } from "../common"; @@ -8,6 +10,13 @@ import { StartedDockerComposeEnvironment } from "../docker-compose-environment/s import { GenericContainer } from "../generic-container/generic-container"; import { StartedTestContainer } from "../test-container"; +export const getImage = (dirname: string): string => { + return fs + .readFileSync(path.resolve(dirname, "..", "Dockerfile"), "utf-8") + .split("\n")[0] + .split(" ")[1]; +}; + export const checkContainerIsHealthy = async (container: StartedTestContainer): Promise => { const url = `http://${container.getHost()}:${container.getMappedPort(8080)}`; const response = await fetch(`${url}/hello-world`); From 44a17d34bacef0ed6811d002f93781afb0b28578 Mon Sep 17 00:00:00 2001 From: Cristian Greco Date: Tue, 27 May 2025 21:40:49 +0100 Subject: [PATCH 3/4] Use correct Azurite image version --- .github/dependabot.yml | 1 - packages/modules/azurite/Dockerfile | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 55bbdb48d..bb2595933 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -95,7 +95,6 @@ updates: patterns: - "*" - - package-ecosystem: "github-actions" directory: "/" schedule: diff --git a/packages/modules/azurite/Dockerfile b/packages/modules/azurite/Dockerfile index 1eb09dc08..e0ca40b86 100644 --- a/packages/modules/azurite/Dockerfile +++ b/packages/modules/azurite/Dockerfile @@ -1 +1 @@ -FROM mcr.microsoft.com/azure-storage/azurite:3.33.0 +FROM mcr.microsoft.com/azure-storage/azurite:3.34.0 From 652bcc0d9fd872a2e68c81c2f87d7289db2d061a Mon Sep 17 00:00:00 2001 From: Cristian Greco Date: Tue, 27 May 2025 21:56:54 +0100 Subject: [PATCH 4/4] Fix gcloud module --- packages/modules/azurecosmosdb/tsconfig.build.json | 1 - packages/modules/azurecosmosdb/tsconfig.json | 3 +-- packages/modules/gcloud/Dockerfile | 2 ++ .../modules/gcloud/src/bigquery-emulator-container.test.ts | 2 +- .../gcloud/src/cloudstorage-emulator-container.test.ts | 2 +- packages/testcontainers/src/utils/test-helper.ts | 6 +++--- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/modules/azurecosmosdb/tsconfig.build.json b/packages/modules/azurecosmosdb/tsconfig.build.json index b8f2e60e6..e9236a57d 100644 --- a/packages/modules/azurecosmosdb/tsconfig.build.json +++ b/packages/modules/azurecosmosdb/tsconfig.build.json @@ -2,7 +2,6 @@ "extends": "./tsconfig.json", "exclude": [ "build", - "jest.config.ts", "src/**/*.test.ts" ], "references": [ diff --git a/packages/modules/azurecosmosdb/tsconfig.json b/packages/modules/azurecosmosdb/tsconfig.json index 5b04a1a44..0e863cb02 100644 --- a/packages/modules/azurecosmosdb/tsconfig.json +++ b/packages/modules/azurecosmosdb/tsconfig.json @@ -10,8 +10,7 @@ } }, "exclude": [ - "build", - "jest.config.ts" + "build" ], "references": [ { diff --git a/packages/modules/gcloud/Dockerfile b/packages/modules/gcloud/Dockerfile index 1ac7f9e09..b6bea9b0e 100644 --- a/packages/modules/gcloud/Dockerfile +++ b/packages/modules/gcloud/Dockerfile @@ -1 +1,3 @@ FROM gcr.io/google.com/cloudsdktool/cloud-sdk:517.0.0-emulators +FROM fsouza/fake-gcs-server:1.52.2 +FROM ghcr.io/goccy/bigquery-emulator:0.6.6 \ No newline at end of file diff --git a/packages/modules/gcloud/src/bigquery-emulator-container.test.ts b/packages/modules/gcloud/src/bigquery-emulator-container.test.ts index e34666e58..e5c16e6b7 100644 --- a/packages/modules/gcloud/src/bigquery-emulator-container.test.ts +++ b/packages/modules/gcloud/src/bigquery-emulator-container.test.ts @@ -2,7 +2,7 @@ import { BigQuery, TableSchema } from "@google-cloud/bigquery"; import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { BigQueryEmulatorContainer, StartedBigQueryEmulatorContainer } from "./bigquery-emulator-container"; -const IMAGE = getImage(__dirname); +const IMAGE = getImage(__dirname, 2); describe("BigQueryEmulatorContainer", { timeout: 240_000 }, () => { it("should work using default version", async () => { diff --git a/packages/modules/gcloud/src/cloudstorage-emulator-container.test.ts b/packages/modules/gcloud/src/cloudstorage-emulator-container.test.ts index 53b6db377..8ffd6a581 100644 --- a/packages/modules/gcloud/src/cloudstorage-emulator-container.test.ts +++ b/packages/modules/gcloud/src/cloudstorage-emulator-container.test.ts @@ -4,7 +4,7 @@ import { ReadableStream } from "node:stream/web"; import { getImage } from "../../../testcontainers/src/utils/test-helper"; import { CloudStorageEmulatorContainer, StartedCloudStorageEmulatorContainer } from "./cloudstorage-emulator-container"; -const IMAGE = getImage(__dirname); +const IMAGE = getImage(__dirname, 1); async function getRequestBodyFromReadableStream(stream: ReadableStream): Promise { const decoder = new TextDecoder(); diff --git a/packages/testcontainers/src/utils/test-helper.ts b/packages/testcontainers/src/utils/test-helper.ts index 3288de030..f3a4ae3cf 100644 --- a/packages/testcontainers/src/utils/test-helper.ts +++ b/packages/testcontainers/src/utils/test-helper.ts @@ -10,11 +10,11 @@ import { StartedDockerComposeEnvironment } from "../docker-compose-environment/s import { GenericContainer } from "../generic-container/generic-container"; import { StartedTestContainer } from "../test-container"; -export const getImage = (dirname: string): string => { +export const getImage = (dirname: string, index = 0): string => { return fs .readFileSync(path.resolve(dirname, "..", "Dockerfile"), "utf-8") - .split("\n")[0] - .split(" ")[1]; + .split("\n") + [index].split(" ")[1]; }; export const checkContainerIsHealthy = async (container: StartedTestContainer): Promise => {