testcontainers 9.12.0 → 10.0.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/{dist/src → build/common}/clock.js +1 -0
  2. package/build/common/clock.js.map +1 -0
  3. package/build/common/file-lock.js +58 -0
  4. package/build/common/file-lock.js.map +1 -0
  5. package/build/common/hash.d.ts +1 -0
  6. package/{dist/src → build/common}/hash.js +3 -2
  7. package/build/common/hash.js.map +1 -0
  8. package/build/common/index.d.ts +7 -0
  9. package/build/common/index.js +37 -0
  10. package/build/common/index.js.map +1 -0
  11. package/{dist/src → build/common}/logger.d.ts +5 -6
  12. package/{dist/src → build/common}/logger.js +5 -2
  13. package/build/common/logger.js.map +1 -0
  14. package/{dist/src/retry-strategy.d.ts → build/common/retry.d.ts} +3 -3
  15. package/build/common/retry.js +38 -0
  16. package/build/common/retry.js.map +1 -0
  17. package/build/common/streams.js +13 -0
  18. package/build/common/streams.js.map +1 -0
  19. package/{dist/src → build/common}/type-guards.js +1 -0
  20. package/build/common/type-guards.js.map +1 -0
  21. package/{dist/src → build/common}/uuid.js +1 -0
  22. package/build/common/uuid.js.map +1 -0
  23. package/build/container-runtime/auth/auths.d.ts +7 -0
  24. package/build/container-runtime/auth/auths.js +45 -0
  25. package/build/container-runtime/auth/auths.js.map +1 -0
  26. package/build/container-runtime/auth/cred-helpers.d.ts +6 -0
  27. package/{dist/src/registry-auth-locator → build/container-runtime/auth}/cred-helpers.js +1 -0
  28. package/build/container-runtime/auth/cred-helpers.js.map +1 -0
  29. package/{dist/src/registry-auth-locator → build/container-runtime/auth}/credential-provider.d.ts +3 -4
  30. package/build/container-runtime/auth/credential-provider.js +71 -0
  31. package/build/container-runtime/auth/credential-provider.js.map +1 -0
  32. package/build/container-runtime/auth/creds-store.d.ts +6 -0
  33. package/{dist/src/registry-auth-locator → build/container-runtime/auth}/creds-store.js +1 -0
  34. package/build/container-runtime/auth/creds-store.js.map +1 -0
  35. package/{dist/src/registry-auth-locator → build/container-runtime/auth}/get-auth-config.d.ts +1 -1
  36. package/{dist/src/registry-auth-locator → build/container-runtime/auth}/get-auth-config.js +11 -19
  37. package/build/container-runtime/auth/get-auth-config.js.map +1 -0
  38. package/build/container-runtime/auth/registry-auth-locator.d.ts +5 -0
  39. package/build/container-runtime/auth/registry-auth-locator.js +3 -0
  40. package/build/container-runtime/auth/registry-auth-locator.js.map +1 -0
  41. package/{dist/src/registry-auth-locator → build/container-runtime/auth}/registry-matches.js +1 -0
  42. package/build/container-runtime/auth/registry-matches.js.map +1 -0
  43. package/{dist/src/registry-auth-locator → build/container-runtime/auth}/types.d.ts +13 -1
  44. package/{dist/src/registry-auth-locator → build/container-runtime/auth}/types.js +1 -0
  45. package/build/container-runtime/auth/types.js.map +1 -0
  46. package/build/container-runtime/clients/client.d.ts +14 -0
  47. package/build/container-runtime/clients/client.js +105 -0
  48. package/build/container-runtime/clients/client.js.map +1 -0
  49. package/build/container-runtime/clients/compose/compose-client.d.ts +11 -0
  50. package/build/container-runtime/clients/compose/compose-client.js +238 -0
  51. package/build/container-runtime/clients/compose/compose-client.js.map +1 -0
  52. package/build/container-runtime/clients/compose/default-compose-options.d.ts +4 -0
  53. package/build/container-runtime/clients/compose/default-compose-options.js +31 -0
  54. package/build/container-runtime/clients/compose/default-compose-options.js.map +1 -0
  55. package/build/container-runtime/clients/compose/parse-compose-container-name.d.ts +1 -0
  56. package/{dist/src/docker-compose/container-name-resolver.js → build/container-runtime/clients/compose/parse-compose-container-name.js} +5 -4
  57. package/build/container-runtime/clients/compose/parse-compose-container-name.js.map +1 -0
  58. package/build/container-runtime/clients/compose/types.d.ts +15 -0
  59. package/{dist/src/docker → build/container-runtime/clients/compose}/types.js +1 -0
  60. package/build/container-runtime/clients/compose/types.js.map +1 -0
  61. package/build/container-runtime/clients/container/container-client.d.ts +32 -0
  62. package/build/container-runtime/clients/container/container-client.js +3 -0
  63. package/build/container-runtime/clients/container/container-client.js.map +1 -0
  64. package/build/container-runtime/clients/container/docker-container-client.d.ts +35 -0
  65. package/build/container-runtime/clients/container/docker-container-client.js +276 -0
  66. package/build/container-runtime/clients/container/docker-container-client.js.map +1 -0
  67. package/build/container-runtime/clients/container/podman-container-client.d.ts +8 -0
  68. package/build/container-runtime/clients/container/podman-container-client.js +43 -0
  69. package/build/container-runtime/clients/container/podman-container-client.js.map +1 -0
  70. package/build/container-runtime/clients/container/types.d.ts +4 -0
  71. package/{dist/src/docker/client/docker-client-types.js → build/container-runtime/clients/container/types.js} +1 -0
  72. package/build/container-runtime/clients/container/types.js.map +1 -0
  73. package/build/container-runtime/clients/image/docker-image-client.d.ts +16 -0
  74. package/build/container-runtime/clients/image/docker-image-client.js +119 -0
  75. package/build/container-runtime/clients/image/docker-image-client.js.map +1 -0
  76. package/build/container-runtime/clients/image/image-client.d.ts +9 -0
  77. package/build/container-runtime/clients/image/image-client.js +3 -0
  78. package/build/container-runtime/clients/image/image-client.js.map +1 -0
  79. package/build/container-runtime/clients/network/docker-network-client.d.ts +9 -0
  80. package/build/container-runtime/clients/network/docker-network-client.js +50 -0
  81. package/build/container-runtime/clients/network/docker-network-client.js.map +1 -0
  82. package/build/container-runtime/clients/network/network-client.d.ts +6 -0
  83. package/build/container-runtime/clients/network/network-client.js +3 -0
  84. package/build/container-runtime/clients/network/network-client.js.map +1 -0
  85. package/build/container-runtime/clients/types.d.ts +30 -0
  86. package/{dist/src/docker/client/strategy/docker-client-strategy.js → build/container-runtime/clients/types.js} +1 -0
  87. package/build/container-runtime/clients/types.js.map +1 -0
  88. package/build/container-runtime/image-name.d.ts +11 -0
  89. package/{dist/src/docker-image-name.js → build/container-runtime/image-name.js} +11 -17
  90. package/build/container-runtime/image-name.js.map +1 -0
  91. package/build/container-runtime/index.d.ts +6 -0
  92. package/build/container-runtime/index.js +13 -0
  93. package/build/container-runtime/index.js.map +1 -0
  94. package/build/container-runtime/strategies/configuration-strategy.d.ts +9 -0
  95. package/build/container-runtime/strategies/configuration-strategy.js +53 -0
  96. package/build/container-runtime/strategies/configuration-strategy.js.map +1 -0
  97. package/build/container-runtime/strategies/npipe-socket-strategy.d.ts +6 -0
  98. package/build/container-runtime/strategies/npipe-socket-strategy.js +21 -0
  99. package/build/container-runtime/strategies/npipe-socket-strategy.js.map +1 -0
  100. package/build/container-runtime/strategies/rootless-unix-socket-strategy.d.ts +14 -0
  101. package/build/container-runtime/strategies/rootless-unix-socket-strategy.js +63 -0
  102. package/build/container-runtime/strategies/rootless-unix-socket-strategy.js.map +1 -0
  103. package/build/container-runtime/strategies/strategy.d.ts +5 -0
  104. package/{dist/src/registry-auth-locator/registry-auth-locator.js → build/container-runtime/strategies/strategy.js} +1 -0
  105. package/build/container-runtime/strategies/strategy.js.map +1 -0
  106. package/build/container-runtime/strategies/testcontainers-host-strategy.d.ts +6 -0
  107. package/build/container-runtime/strategies/testcontainers-host-strategy.js +30 -0
  108. package/build/container-runtime/strategies/testcontainers-host-strategy.js.map +1 -0
  109. package/build/container-runtime/strategies/types.d.ts +8 -0
  110. package/build/container-runtime/strategies/types.js +3 -0
  111. package/build/container-runtime/strategies/types.js.map +1 -0
  112. package/build/container-runtime/strategies/unix-socket-strategy.d.ts +6 -0
  113. package/build/container-runtime/strategies/unix-socket-strategy.js +22 -0
  114. package/build/container-runtime/strategies/unix-socket-strategy.js.map +1 -0
  115. package/build/container-runtime/strategies/utils/config.d.ts +9 -0
  116. package/build/container-runtime/strategies/utils/config.js +75 -0
  117. package/build/container-runtime/strategies/utils/config.js.map +1 -0
  118. package/build/container-runtime/utils/attach-container.js +17 -0
  119. package/build/container-runtime/utils/attach-container.js.map +1 -0
  120. package/build/container-runtime/utils/demux-stream.d.ts +4 -0
  121. package/build/container-runtime/utils/demux-stream.js +24 -0
  122. package/build/container-runtime/utils/demux-stream.js.map +1 -0
  123. package/build/container-runtime/utils/image-exists.d.ts +3 -0
  124. package/build/container-runtime/utils/image-exists.js +29 -0
  125. package/build/container-runtime/utils/image-exists.js.map +1 -0
  126. package/build/container-runtime/utils/lookup-host-ips.d.ts +2 -0
  127. package/build/container-runtime/utils/lookup-host-ips.js +18 -0
  128. package/build/container-runtime/utils/lookup-host-ips.js.map +1 -0
  129. package/{dist/src/docker/functions/image → build/container-runtime/utils}/pull-image.d.ts +2 -2
  130. package/build/container-runtime/utils/pull-image.js +35 -0
  131. package/build/container-runtime/utils/pull-image.js.map +1 -0
  132. package/build/container-runtime/utils/remote-container-runtime-socket-path.d.ts +7 -0
  133. package/build/container-runtime/utils/remote-container-runtime-socket-path.js +23 -0
  134. package/build/container-runtime/utils/remote-container-runtime-socket-path.js.map +1 -0
  135. package/build/container-runtime/utils/resolve-host.d.ts +8 -0
  136. package/build/container-runtime/utils/resolve-host.js +54 -0
  137. package/build/container-runtime/utils/resolve-host.js.map +1 -0
  138. package/build/container-runtime/utils/run-in-container.js +30 -0
  139. package/build/container-runtime/utils/run-in-container.js.map +1 -0
  140. package/build/container-runtime/utils/start-container.js +15 -0
  141. package/build/container-runtime/utils/start-container.js.map +1 -0
  142. package/{dist/src → build}/docker-compose-environment/docker-compose-environment.d.ts +5 -5
  143. package/build/docker-compose-environment/docker-compose-environment.js +144 -0
  144. package/build/docker-compose-environment/docker-compose-environment.js.map +1 -0
  145. package/{dist/src → build}/docker-compose-environment/downed-docker-compose-environment.js +1 -0
  146. package/build/docker-compose-environment/downed-docker-compose-environment.js.map +1 -0
  147. package/{dist/src → build}/docker-compose-environment/started-docker-compose-environment.d.ts +3 -3
  148. package/build/docker-compose-environment/started-docker-compose-environment.js +37 -0
  149. package/build/docker-compose-environment/started-docker-compose-environment.js.map +1 -0
  150. package/build/docker-compose-environment/stopped-docker-compose-environment.d.ts +7 -0
  151. package/build/docker-compose-environment/stopped-docker-compose-environment.js +19 -0
  152. package/build/docker-compose-environment/stopped-docker-compose-environment.js.map +1 -0
  153. package/{dist/src/modules → build/generic-container}/abstract-started-container.d.ts +1 -1
  154. package/build/generic-container/abstract-started-container.js +69 -0
  155. package/build/generic-container/abstract-started-container.js.map +1 -0
  156. package/{dist/src/modules → build/generic-container}/abstract-stopped-container.js +2 -0
  157. package/build/generic-container/abstract-stopped-container.js.map +1 -0
  158. package/{dist/src → build}/generic-container/generic-container-builder.d.ts +4 -4
  159. package/build/generic-container/generic-container-builder.js +87 -0
  160. package/build/generic-container/generic-container-builder.js.map +1 -0
  161. package/{dist/src → build}/generic-container/generic-container.d.ts +18 -22
  162. package/build/generic-container/generic-container.js +350 -0
  163. package/build/generic-container/generic-container.js.map +1 -0
  164. package/{dist/src → build}/generic-container/started-generic-container.d.ts +6 -6
  165. package/build/generic-container/started-generic-container.js +161 -0
  166. package/build/generic-container/started-generic-container.js.map +1 -0
  167. package/build/generic-container/stopped-generic-container.js +23 -0
  168. package/build/generic-container/stopped-generic-container.js.map +1 -0
  169. package/build/index.d.ts +16 -0
  170. package/build/index.js +35 -0
  171. package/build/index.js.map +1 -0
  172. package/build/network/network.d.ts +19 -0
  173. package/build/network/network.js +61 -0
  174. package/build/network/network.js.map +1 -0
  175. package/{dist/src → build/port-forwarder}/port-forwarder.d.ts +2 -1
  176. package/build/port-forwarder/port-forwarder.js +73 -0
  177. package/build/port-forwarder/port-forwarder.js.map +1 -0
  178. package/build/reaper/reaper.d.ts +8 -0
  179. package/build/reaper/reaper.js +119 -0
  180. package/build/reaper/reaper.js.map +1 -0
  181. package/{dist/src → build}/test-container.d.ts +6 -6
  182. package/{dist/src → build}/test-container.js +1 -0
  183. package/build/test-container.js.map +1 -0
  184. package/build/test-containers.js +12 -0
  185. package/build/test-containers.js.map +1 -0
  186. package/{dist/src/docker → build}/types.d.ts +16 -0
  187. package/build/types.js +3 -0
  188. package/build/types.js.map +1 -0
  189. package/{dist/src → build/utils}/bound-ports.d.ts +4 -3
  190. package/{dist/src → build/utils}/bound-ports.js +22 -5
  191. package/build/utils/bound-ports.js.map +1 -0
  192. package/build/utils/dockerfile-parser.d.ts +3 -0
  193. package/build/utils/dockerfile-parser.js +28 -0
  194. package/build/utils/dockerfile-parser.js.map +1 -0
  195. package/{dist/src → build/utils}/labels.d.ts +1 -0
  196. package/build/utils/labels.js +18 -0
  197. package/build/utils/labels.js.map +1 -0
  198. package/build/utils/map-inspect-result.d.ts +3 -0
  199. package/build/utils/map-inspect-result.js +55 -0
  200. package/build/utils/map-inspect-result.js.map +1 -0
  201. package/build/utils/port-generator.js +43 -0
  202. package/build/utils/port-generator.js.map +1 -0
  203. package/{dist/src → build/utils}/port.d.ts +0 -3
  204. package/build/utils/port.js +10 -0
  205. package/build/utils/port.js.map +1 -0
  206. package/build/utils/pull-policy.d.ts +7 -0
  207. package/build/utils/pull-policy.js +23 -0
  208. package/build/utils/pull-policy.js.map +1 -0
  209. package/build/utils/test-helper.d.ts +19 -0
  210. package/build/utils/test-helper.js +107 -0
  211. package/build/utils/test-helper.js.map +1 -0
  212. package/build/version.d.ts +1 -0
  213. package/build/version.js +5 -0
  214. package/build/version.js.map +1 -0
  215. package/{dist/src/wait-strategy → build/wait-strategies}/composite-wait-strategy.d.ts +1 -1
  216. package/build/wait-strategies/composite-wait-strategy.js +49 -0
  217. package/build/wait-strategies/composite-wait-strategy.js.map +1 -0
  218. package/build/wait-strategies/health-check-wait-strategy.js +26 -0
  219. package/build/wait-strategies/health-check-wait-strategy.js.map +1 -0
  220. package/{dist/src/wait-strategy → build/wait-strategies}/host-port-wait-strategy.d.ts +1 -1
  221. package/build/wait-strategies/host-port-wait-strategy.js +42 -0
  222. package/build/wait-strategies/host-port-wait-strategy.js.map +1 -0
  223. package/{dist/src/wait-strategy → build/wait-strategies}/http-wait-strategy.d.ts +1 -1
  224. package/build/wait-strategies/http-wait-strategy.js +111 -0
  225. package/build/wait-strategies/http-wait-strategy.js.map +1 -0
  226. package/{dist/src/wait-strategy → build/wait-strategies}/log-wait-strategy.d.ts +1 -1
  227. package/build/wait-strategies/log-wait-strategy.js +62 -0
  228. package/build/wait-strategies/log-wait-strategy.js.map +1 -0
  229. package/build/wait-strategies/shell-wait-strategy.js +30 -0
  230. package/build/wait-strategies/shell-wait-strategy.js.map +1 -0
  231. package/{dist/src/wait-strategy → build/wait-strategies}/startup-check-strategy.d.ts +3 -0
  232. package/build/wait-strategies/startup-check-strategy.js +27 -0
  233. package/build/wait-strategies/startup-check-strategy.js.map +1 -0
  234. package/{dist/src → build/wait-strategies/utils}/port-check.d.ts +5 -6
  235. package/build/wait-strategies/utils/port-check.js +81 -0
  236. package/build/wait-strategies/utils/port-check.js.map +1 -0
  237. package/build/wait-strategies/wait-for-container.d.ts +5 -0
  238. package/build/wait-strategies/wait-for-container.js +24 -0
  239. package/build/wait-strategies/wait-for-container.js.map +1 -0
  240. package/{dist/src/wait-strategy → build/wait-strategies}/wait-strategy.d.ts +1 -1
  241. package/{dist/src/wait-strategy → build/wait-strategies}/wait-strategy.js +3 -4
  242. package/build/wait-strategies/wait-strategy.js.map +1 -0
  243. package/{dist/src/wait-strategy → build/wait-strategies}/wait.js +1 -0
  244. package/build/wait-strategies/wait.js.map +1 -0
  245. package/package.json +20 -65
  246. package/LICENSE +0 -21
  247. package/README.md +0 -27
  248. package/dist/package.json +0 -104
  249. package/dist/src/docker/client/docker-client-config.d.ts +0 -9
  250. package/dist/src/docker/client/docker-client-config.js +0 -82
  251. package/dist/src/docker/client/docker-client-types.d.ts +0 -23
  252. package/dist/src/docker/client/docker-client.d.ts +0 -2
  253. package/dist/src/docker/client/docker-client.js +0 -133
  254. package/dist/src/docker/client/strategy/configuration-strategy.d.ts +0 -11
  255. package/dist/src/docker/client/strategy/configuration-strategy.js +0 -66
  256. package/dist/src/docker/client/strategy/docker-client-strategy.d.ts +0 -7
  257. package/dist/src/docker/client/strategy/npipe-socket-strategy.d.ts +0 -7
  258. package/dist/src/docker/client/strategy/npipe-socket-strategy.js +0 -31
  259. package/dist/src/docker/client/strategy/rootless-unix-socket-strategy.d.ts +0 -18
  260. package/dist/src/docker/client/strategy/rootless-unix-socket-strategy.js +0 -77
  261. package/dist/src/docker/client/strategy/testcontainers-host-strategy.d.ts +0 -9
  262. package/dist/src/docker/client/strategy/testcontainers-host-strategy.js +0 -47
  263. package/dist/src/docker/client/strategy/unix-socket-strategy.d.ts +0 -7
  264. package/dist/src/docker/client/strategy/unix-socket-strategy.js +0 -32
  265. package/dist/src/docker/functions/container/attach-container.js +0 -25
  266. package/dist/src/docker/functions/container/container-logs.d.ts +0 -6
  267. package/dist/src/docker/functions/container/container-logs.js +0 -32
  268. package/dist/src/docker/functions/container/create-container.d.ts +0 -31
  269. package/dist/src/docker/functions/container/create-container.js +0 -117
  270. package/dist/src/docker/functions/container/exec-container.d.ts +0 -3
  271. package/dist/src/docker/functions/container/exec-container.js +0 -66
  272. package/dist/src/docker/functions/container/get-container-archive.d.ts +0 -11
  273. package/dist/src/docker/functions/container/get-container-archive.js +0 -23
  274. package/dist/src/docker/functions/container/get-container.d.ts +0 -3
  275. package/dist/src/docker/functions/container/get-container.js +0 -49
  276. package/dist/src/docker/functions/container/inspect-container.d.ts +0 -19
  277. package/dist/src/docker/functions/container/inspect-container.js +0 -67
  278. package/dist/src/docker/functions/container/list-containers.d.ts +0 -2
  279. package/dist/src/docker/functions/container/list-containers.js +0 -25
  280. package/dist/src/docker/functions/container/put-container-archive.d.ts +0 -9
  281. package/dist/src/docker/functions/container/put-container-archive.js +0 -26
  282. package/dist/src/docker/functions/container/remove-container.d.ts +0 -5
  283. package/dist/src/docker/functions/container/remove-container.js +0 -23
  284. package/dist/src/docker/functions/container/restart-container.d.ts +0 -5
  285. package/dist/src/docker/functions/container/restart-container.js +0 -23
  286. package/dist/src/docker/functions/container/start-container.js +0 -23
  287. package/dist/src/docker/functions/container/stop-container.d.ts +0 -5
  288. package/dist/src/docker/functions/container/stop-container.js +0 -29
  289. package/dist/src/docker/functions/create-labels.d.ts +0 -2
  290. package/dist/src/docker/functions/create-labels.js +0 -13
  291. package/dist/src/docker/functions/demux-stream.d.ts +0 -3
  292. package/dist/src/docker/functions/demux-stream.js +0 -32
  293. package/dist/src/docker/functions/get-info.d.ts +0 -11
  294. package/dist/src/docker/functions/get-info.js +0 -38
  295. package/dist/src/docker/functions/image/build-image.d.ts +0 -14
  296. package/dist/src/docker/functions/image/build-image.js +0 -81
  297. package/dist/src/docker/functions/image/image-exists.d.ts +0 -3
  298. package/dist/src/docker/functions/image/image-exists.js +0 -37
  299. package/dist/src/docker/functions/image/pull-image.js +0 -48
  300. package/dist/src/docker/functions/network/connect-network.d.ts +0 -6
  301. package/dist/src/docker/functions/network/connect-network.js +0 -28
  302. package/dist/src/docker/functions/network/create-network.d.ts +0 -16
  303. package/dist/src/docker/functions/network/create-network.js +0 -39
  304. package/dist/src/docker/functions/network/remove-network.d.ts +0 -1
  305. package/dist/src/docker/functions/network/remove-network.js +0 -31
  306. package/dist/src/docker/functions/run-in-container.js +0 -39
  307. package/dist/src/docker/lookup-host-ips.d.ts +0 -5
  308. package/dist/src/docker/lookup-host-ips.js +0 -26
  309. package/dist/src/docker/remote-docker-unix-socket-path.d.ts +0 -7
  310. package/dist/src/docker/remote-docker-unix-socket-path.js +0 -22
  311. package/dist/src/docker/resolve-host.d.ts +0 -8
  312. package/dist/src/docker/resolve-host.js +0 -63
  313. package/dist/src/docker-compose/container-name-resolver.d.ts +0 -1
  314. package/dist/src/docker-compose/docker-compose-client.d.ts +0 -9
  315. package/dist/src/docker-compose/docker-compose-client.js +0 -221
  316. package/dist/src/docker-compose/docker-compose-options.d.ts +0 -17
  317. package/dist/src/docker-compose/docker-compose-options.js +0 -51
  318. package/dist/src/docker-compose-environment/docker-compose-environment.js +0 -146
  319. package/dist/src/docker-compose-environment/started-docker-compose-environment.js +0 -47
  320. package/dist/src/docker-compose-environment/stopped-docker-compose-environment.d.ts +0 -7
  321. package/dist/src/docker-compose-environment/stopped-docker-compose-environment.js +0 -28
  322. package/dist/src/docker-image-name.d.ts +0 -15
  323. package/dist/src/dockerfile-parser.d.ts +0 -3
  324. package/dist/src/dockerfile-parser.js +0 -39
  325. package/dist/src/file-lock.js +0 -47
  326. package/dist/src/generic-container/create-container-options.d.ts +0 -3
  327. package/dist/src/generic-container/create-container-options.js +0 -18
  328. package/dist/src/generic-container/generic-container-builder.js +0 -97
  329. package/dist/src/generic-container/generic-container.js +0 -329
  330. package/dist/src/generic-container/started-generic-container.js +0 -168
  331. package/dist/src/generic-container/stopped-generic-container.js +0 -20
  332. package/dist/src/hash.d.ts +0 -1
  333. package/dist/src/images.d.ts +0 -2
  334. package/dist/src/images.js +0 -6
  335. package/dist/src/index.d.ts +0 -25
  336. package/dist/src/index.js +0 -66
  337. package/dist/src/labels.js +0 -8
  338. package/dist/src/modules/abstract-started-container.js +0 -86
  339. package/dist/src/modules/arangodb/arangodb-container.d.ts +0 -19
  340. package/dist/src/modules/arangodb/arangodb-container.js +0 -60
  341. package/dist/src/modules/elasticsearch/elasticsearch-container.d.ts +0 -12
  342. package/dist/src/modules/elasticsearch/elasticsearch-container.js +0 -49
  343. package/dist/src/modules/hivemq/hivemq-container.d.ts +0 -15
  344. package/dist/src/modules/hivemq/hivemq-container.js +0 -79
  345. package/dist/src/modules/kafka/kafka-container.d.ts +0 -45
  346. package/dist/src/modules/kafka/kafka-container.js +0 -177
  347. package/dist/src/modules/mongodb/mongodb-container.d.ts +0 -19
  348. package/dist/src/modules/mongodb/mongodb-container.js +0 -85
  349. package/dist/src/modules/mysql/mysql-container.d.ts +0 -30
  350. package/dist/src/modules/mysql/mysql-container.js +0 -111
  351. package/dist/src/modules/nats/nats-container.d.ts +0 -55
  352. package/dist/src/modules/nats/nats-container.js +0 -99
  353. package/dist/src/modules/neo4j/neo4j-container.d.ts +0 -23
  354. package/dist/src/modules/neo4j/neo4j-container.js +0 -82
  355. package/dist/src/modules/postgresql/postgresql-container.d.ts +0 -28
  356. package/dist/src/modules/postgresql/postgresql-container.js +0 -87
  357. package/dist/src/modules/selenium/selenium-container.d.ts +0 -38
  358. package/dist/src/modules/selenium/selenium-container.js +0 -161
  359. package/dist/src/network.d.ts +0 -18
  360. package/dist/src/network.js +0 -60
  361. package/dist/src/port-check.js +0 -90
  362. package/dist/src/port-forwarder.js +0 -83
  363. package/dist/src/port-generator.js +0 -51
  364. package/dist/src/port.js +0 -47
  365. package/dist/src/pull-policy.d.ts +0 -9
  366. package/dist/src/pull-policy.js +0 -15
  367. package/dist/src/reaper.d.ts +0 -5
  368. package/dist/src/reaper.js +0 -157
  369. package/dist/src/registry-auth-locator/auths.d.ts +0 -8
  370. package/dist/src/registry-auth-locator/auths.js +0 -56
  371. package/dist/src/registry-auth-locator/cred-helpers.d.ts +0 -6
  372. package/dist/src/registry-auth-locator/credential-provider.js +0 -81
  373. package/dist/src/registry-auth-locator/creds-store.d.ts +0 -6
  374. package/dist/src/registry-auth-locator/registry-auth-locator.d.ts +0 -6
  375. package/dist/src/retry-strategy.js +0 -46
  376. package/dist/src/stream-utils.js +0 -46
  377. package/dist/src/system-info.d.ts +0 -19
  378. package/dist/src/system-info.js +0 -80
  379. package/dist/src/test-containers.js +0 -22
  380. package/dist/src/wait-for-container.d.ts +0 -4
  381. package/dist/src/wait-for-container.js +0 -34
  382. package/dist/src/wait-strategy/composite-wait-strategy.js +0 -57
  383. package/dist/src/wait-strategy/health-check-wait-strategy.js +0 -36
  384. package/dist/src/wait-strategy/host-port-wait-strategy.js +0 -59
  385. package/dist/src/wait-strategy/http-wait-strategy.js +0 -120
  386. package/dist/src/wait-strategy/log-wait-strategy.js +0 -69
  387. package/dist/src/wait-strategy/shell-wait-strategy.js +0 -39
  388. package/dist/src/wait-strategy/startup-check-strategy.js +0 -35
  389. /package/{dist/src → build/common}/clock.d.ts +0 -0
  390. /package/{dist/src → build/common}/file-lock.d.ts +0 -0
  391. /package/{dist/src/stream-utils.d.ts → build/common/streams.d.ts} +0 -0
  392. /package/{dist/src → build/common}/type-guards.d.ts +0 -0
  393. /package/{dist/src → build/common}/uuid.d.ts +0 -0
  394. /package/{dist/src/registry-auth-locator → build/container-runtime/auth}/registry-matches.d.ts +0 -0
  395. /package/{dist/src/docker/functions/container → build/container-runtime/utils}/attach-container.d.ts +0 -0
  396. /package/{dist/src/docker/functions → build/container-runtime/utils}/run-in-container.d.ts +0 -0
  397. /package/{dist/src/docker/functions/container → build/container-runtime/utils}/start-container.d.ts +0 -0
  398. /package/{dist/src → build}/docker-compose-environment/downed-docker-compose-environment.d.ts +0 -0
  399. /package/{dist/src/modules → build/generic-container}/abstract-stopped-container.d.ts +0 -0
  400. /package/{dist/src → build}/generic-container/stopped-generic-container.d.ts +0 -0
  401. /package/{dist/src → build}/test-containers.d.ts +0 -0
  402. /package/{dist/src → build/utils}/port-generator.d.ts +0 -0
  403. /package/{dist/src/wait-strategy → build/wait-strategies}/health-check-wait-strategy.d.ts +0 -0
  404. /package/{dist/src/wait-strategy → build/wait-strategies}/shell-wait-strategy.d.ts +0 -0
  405. /package/{dist/src/wait-strategy → build/wait-strategies}/wait.d.ts +0 -0
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GenericContainerBuilder = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const generic_container_1 = require("./generic-container");
9
+ const pull_policy_1 = require("../utils/pull-policy");
10
+ const common_1 = require("../common");
11
+ const container_runtime_1 = require("../container-runtime");
12
+ const reaper_1 = require("../reaper/reaper");
13
+ const dockerfile_parser_1 = require("../utils/dockerfile-parser");
14
+ const labels_1 = require("../utils/labels");
15
+ class GenericContainerBuilder {
16
+ context;
17
+ dockerfileName;
18
+ uuid;
19
+ buildArgs = {};
20
+ pullPolicy = pull_policy_1.PullPolicy.defaultPolicy();
21
+ cache = true;
22
+ constructor(context, dockerfileName, uuid = new common_1.RandomUuid()) {
23
+ this.context = context;
24
+ this.dockerfileName = dockerfileName;
25
+ this.uuid = uuid;
26
+ }
27
+ withBuildArgs(buildArgs) {
28
+ this.buildArgs = buildArgs;
29
+ return this;
30
+ }
31
+ withPullPolicy(pullPolicy) {
32
+ this.pullPolicy = pullPolicy;
33
+ return this;
34
+ }
35
+ withCache(cache) {
36
+ this.cache = cache;
37
+ return this;
38
+ }
39
+ async build(image = `localhost/${this.uuid.nextUuid()}:${this.uuid.nextUuid()}`, options = { deleteOnExit: true }) {
40
+ const client = await (0, container_runtime_1.getContainerRuntimeClient)();
41
+ const reaper = await (0, reaper_1.getReaper)(client);
42
+ const imageName = container_runtime_1.ImageName.fromString(image);
43
+ const dockerfile = path_1.default.resolve(this.context, this.dockerfileName);
44
+ const imageNames = await (0, dockerfile_parser_1.getDockerfileImages)(dockerfile, this.buildArgs);
45
+ const registryConfig = await this.getRegistryConfig(client.info.containerRuntime.indexServerAddress, imageNames);
46
+ const labels = (0, labels_1.createLabels)();
47
+ if (options.deleteOnExit) {
48
+ labels[labels_1.LABEL_TESTCONTAINERS_SESSION_ID] = reaper.sessionId;
49
+ }
50
+ common_1.log.info(`Building Dockerfile "${dockerfile}" as image "${imageName}"...`);
51
+ await client.image.build(this.context, {
52
+ t: imageName.string,
53
+ dockerfile: this.dockerfileName,
54
+ buildargs: this.buildArgs,
55
+ pull: this.pullPolicy ? "true" : undefined,
56
+ nocache: !this.cache,
57
+ registryconfig: registryConfig,
58
+ labels,
59
+ });
60
+ const container = new generic_container_1.GenericContainer(imageName.string);
61
+ if (!(await client.image.exists(imageName))) {
62
+ throw new Error("Failed to build image");
63
+ }
64
+ return Promise.resolve(container);
65
+ }
66
+ async getRegistryConfig(indexServerAddress, imageNames) {
67
+ const authConfigs = [];
68
+ await Promise.all(imageNames.map(async (imageName) => {
69
+ const authConfig = await (0, container_runtime_1.getAuthConfig)(imageName.registry ?? indexServerAddress);
70
+ if (authConfig !== undefined) {
71
+ authConfigs.push(authConfig);
72
+ }
73
+ }));
74
+ return authConfigs
75
+ .map((authConfig) => {
76
+ return {
77
+ [authConfig.registryAddress]: {
78
+ username: authConfig.username,
79
+ password: authConfig.password,
80
+ },
81
+ };
82
+ })
83
+ .reduce((prev, next) => ({ ...prev, ...next }), {});
84
+ }
85
+ }
86
+ exports.GenericContainerBuilder = GenericContainerBuilder;
87
+ //# sourceMappingURL=generic-container-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic-container-builder.js","sourceRoot":"","sources":["../../src/generic-container/generic-container-builder.ts"],"names":[],"mappings":"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"}
@@ -1,34 +1,34 @@
1
1
  /// <reference types="node" />
2
- import { BoundPorts } from "../bound-ports";
3
- import { PortWithOptionalBinding } from "../port";
4
- import { PullPolicy } from "../pull-policy";
5
2
  import { StartedTestContainer, TestContainer } from "../test-container";
6
- import { WaitStrategy } from "../wait-strategy/wait-strategy";
7
- import { BindMount, ContentToCopy, DirectoryToCopy, Environment, ExtraHost, FileToCopy, HealthCheck, Labels, ResourcesQuota, TmpFs, Ulimits } from "../docker/types";
8
- import { CreateContainerOptions } from "../docker/functions/container/create-container";
9
- import { InspectResult } from "../docker/functions/container/inspect-container";
3
+ import { WaitStrategy } from "../wait-strategies/wait-strategy";
4
+ import { BindMount, ContentToCopy, DirectoryToCopy, Environment, ExtraHost, FileToCopy, HealthCheck, InspectResult, Labels, ResourcesQuota, TmpFs, Ulimits } from "../types";
10
5
  import { GenericContainerBuilder } from "./generic-container-builder";
11
- import { StartedNetwork } from "../network";
12
6
  import { Readable } from "stream";
7
+ import { ContainerCreateOptions, HostConfig } from "dockerode";
8
+ import { ImageName } from "../container-runtime";
9
+ import { PortWithOptionalBinding } from "../utils/port";
10
+ import { ImagePullPolicy } from "../utils/pull-policy";
11
+ import { StartedNetwork } from "../network/network";
13
12
  export declare class GenericContainer implements TestContainer {
14
- readonly image: string;
15
13
  static fromDockerfile(context: string, dockerfileName?: string): GenericContainerBuilder;
16
- protected opts: CreateContainerOptions;
14
+ protected createOpts: ContainerCreateOptions;
15
+ protected hostConfig: HostConfig;
16
+ protected imageName: ImageName;
17
17
  protected startupTimeout?: number;
18
18
  protected waitStrategy: WaitStrategy;
19
+ protected environment: Record<string, string>;
20
+ protected exposedPorts: PortWithOptionalBinding[];
21
+ protected reuse: boolean;
19
22
  protected networkMode?: string;
20
23
  protected networkAliases: string[];
21
- protected pullPolicy: PullPolicy;
24
+ protected pullPolicy: ImagePullPolicy;
22
25
  protected logConsumer?: (stream: Readable) => unknown;
23
26
  protected filesToCopy: FileToCopy[];
24
27
  protected directoriesToCopy: DirectoryToCopy[];
25
28
  protected contentsToCopy: ContentToCopy[];
26
29
  constructor(image: string);
27
- /**
28
- * @deprecated Since version 9.4.0. Will be removed in version 10.0.0. Use `beforeContainerStarted` instead.
29
- */
30
- protected preStart?(): Promise<void>;
31
- protected beforeContainerStarted?(): Promise<void>;
30
+ private isHelperContainer;
31
+ protected beforeContainerCreated?(): Promise<void>;
32
32
  protected containerCreated?(containerId: string): Promise<void>;
33
33
  protected containerStarting?(inspectResult: InspectResult, reused: boolean): Promise<void>;
34
34
  start(): Promise<StartedTestContainer>;
@@ -37,12 +37,7 @@ export declare class GenericContainer implements TestContainer {
37
37
  private startContainer;
38
38
  private connectContainerToPortForwarder;
39
39
  private createArchiveToCopyToContainer;
40
- /**
41
- * @deprecated Since version 9.4.0. Will be removed in version 10.0.0. Use `containerStarted` instead.
42
- */
43
- protected postStart?(container: StartedTestContainer, inspectResult: InspectResult, boundPorts: BoundPorts): Promise<void>;
44
40
  protected containerStarted?(container: StartedTestContainer, inspectResult: InspectResult, reused: boolean): Promise<void>;
45
- protected get hasExposedPorts(): boolean;
46
41
  withCommand(command: string[]): this;
47
42
  withEntrypoint(entrypoint: string[]): this;
48
43
  withName(name: string): this;
@@ -56,6 +51,7 @@ export declare class GenericContainer implements TestContainer {
56
51
  withNetworkMode(networkMode: string): this;
57
52
  withNetworkAliases(...networkAliases: string[]): this;
58
53
  withExtraHosts(extraHosts: ExtraHost[]): this;
54
+ protected get hasExposedPorts(): boolean;
59
55
  withExposedPorts(...ports: PortWithOptionalBinding[]): this;
60
56
  withBindMounts(bindMounts: BindMount[]): this;
61
57
  withHealthCheck(healthCheck: HealthCheck): this;
@@ -65,7 +61,7 @@ export declare class GenericContainer implements TestContainer {
65
61
  withPrivilegedMode(): this;
66
62
  withUser(user: string): this;
67
63
  withReuse(): this;
68
- withPullPolicy(pullPolicy: PullPolicy): this;
64
+ withPullPolicy(pullPolicy: ImagePullPolicy): this;
69
65
  withIpcMode(ipcMode: string): this;
70
66
  withCopyFilesToContainer(filesToCopy: FileToCopy[]): this;
71
67
  withCopyDirectoriesToContainer(directoriesToCopy: DirectoryToCopy[]): this;
@@ -0,0 +1,350 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GenericContainer = void 0;
7
+ const archiver_1 = __importDefault(require("archiver"));
8
+ const async_lock_1 = __importDefault(require("async-lock"));
9
+ const generic_container_builder_1 = require("./generic-container-builder");
10
+ const started_generic_container_1 = require("./started-generic-container");
11
+ const wait_1 = require("../wait-strategies/wait");
12
+ const wait_for_container_1 = require("../wait-strategies/wait-for-container");
13
+ const container_runtime_1 = require("../container-runtime");
14
+ const port_1 = require("../utils/port");
15
+ const pull_policy_1 = require("../utils/pull-policy");
16
+ const reaper_1 = require("../reaper/reaper");
17
+ const port_forwarder_1 = require("../port-forwarder/port-forwarder");
18
+ const labels_1 = require("../utils/labels");
19
+ const common_1 = require("../common");
20
+ const bound_ports_1 = require("../utils/bound-ports");
21
+ const map_inspect_result_1 = require("../utils/map-inspect-result");
22
+ const reusableContainerCreationLock = new async_lock_1.default();
23
+ class GenericContainer {
24
+ static fromDockerfile(context, dockerfileName = "Dockerfile") {
25
+ return new generic_container_builder_1.GenericContainerBuilder(context, dockerfileName);
26
+ }
27
+ createOpts;
28
+ hostConfig;
29
+ imageName;
30
+ startupTimeout;
31
+ waitStrategy = wait_1.Wait.forListeningPorts();
32
+ environment = {};
33
+ exposedPorts = [];
34
+ reuse = false;
35
+ networkMode;
36
+ networkAliases = [];
37
+ pullPolicy = pull_policy_1.PullPolicy.defaultPolicy();
38
+ logConsumer;
39
+ filesToCopy = [];
40
+ directoriesToCopy = [];
41
+ contentsToCopy = [];
42
+ constructor(image) {
43
+ this.imageName = container_runtime_1.ImageName.fromString(image);
44
+ this.createOpts = { Image: this.imageName.string };
45
+ this.hostConfig = { AutoRemove: this.imageName.string === reaper_1.REAPER_IMAGE };
46
+ }
47
+ isHelperContainer() {
48
+ return this.imageName.string === reaper_1.REAPER_IMAGE || this.imageName.string === port_forwarder_1.SSHD_IMAGE;
49
+ }
50
+ async start() {
51
+ const client = await (0, container_runtime_1.getContainerRuntimeClient)();
52
+ await client.image.pull(this.imageName, { force: this.pullPolicy.shouldPull() });
53
+ if (this.beforeContainerCreated) {
54
+ await this.beforeContainerCreated();
55
+ }
56
+ if (!this.isHelperContainer() && port_forwarder_1.PortForwarderInstance.isRunning()) {
57
+ const portForwarder = await port_forwarder_1.PortForwarderInstance.getInstance();
58
+ this.hostConfig.ExtraHosts = [
59
+ ...(this.hostConfig.ExtraHosts ?? []),
60
+ `host.testcontainers.internal:${portForwarder.getIpAddress()}`,
61
+ ];
62
+ }
63
+ this.hostConfig.NetworkMode = this.networkAliases.length > 0 ? undefined : this.networkMode;
64
+ this.createOpts.Labels = { ...(0, labels_1.createLabels)(), ...this.createOpts.Labels };
65
+ if (this.reuse) {
66
+ return this.reuseOrStartContainer(client);
67
+ }
68
+ if (!this.isHelperContainer()) {
69
+ const reaper = await (0, reaper_1.getReaper)(client);
70
+ this.createOpts.Labels = { ...this.createOpts.Labels, [labels_1.LABEL_TESTCONTAINERS_SESSION_ID]: reaper.sessionId };
71
+ }
72
+ return this.startContainer(client);
73
+ }
74
+ async reuseOrStartContainer(client) {
75
+ const containerHash = (0, common_1.hash)(JSON.stringify(this.createOpts));
76
+ this.createOpts.Labels = { ...this.createOpts.Labels, [labels_1.LABEL_TESTCONTAINERS_CONTAINER_HASH]: containerHash };
77
+ common_1.log.debug(`Container reuse has been enabled with hash "${containerHash}"`);
78
+ return reusableContainerCreationLock.acquire(containerHash, async () => {
79
+ const container = await client.container.fetchByLabel(labels_1.LABEL_TESTCONTAINERS_CONTAINER_HASH, containerHash);
80
+ if (container !== undefined) {
81
+ common_1.log.debug(`Found container to reuse with hash "${containerHash}"`, { containerId: container.id });
82
+ return this.reuseContainer(client, container);
83
+ }
84
+ common_1.log.debug("No container found to reuse");
85
+ return this.startContainer(client);
86
+ });
87
+ }
88
+ async reuseContainer(client, container) {
89
+ const inspectResult = await client.container.inspect(container);
90
+ const mappedInspectResult = (0, map_inspect_result_1.mapInspectResult)(inspectResult);
91
+ const boundPorts = bound_ports_1.BoundPorts.fromInspectResult(client.info.containerRuntime.hostIps, mappedInspectResult).filter(this.exposedPorts);
92
+ if (this.startupTimeout !== undefined) {
93
+ this.waitStrategy.withStartupTimeout(this.startupTimeout);
94
+ }
95
+ if (this.containerStarting) {
96
+ await this.containerStarting(mappedInspectResult, true);
97
+ }
98
+ await (0, wait_for_container_1.waitForContainer)(client, container, this.waitStrategy, boundPorts);
99
+ const startedContainer = new started_generic_container_1.StartedGenericContainer(container, client.info.containerRuntime.host, inspectResult, boundPorts, inspectResult.Name, this.waitStrategy);
100
+ if (this.containerStarted) {
101
+ await this.containerStarted(startedContainer, mappedInspectResult, true);
102
+ }
103
+ return startedContainer;
104
+ }
105
+ async startContainer(client) {
106
+ const container = await client.container.create({ ...this.createOpts, HostConfig: this.hostConfig });
107
+ if (!this.isHelperContainer() && port_forwarder_1.PortForwarderInstance.isRunning()) {
108
+ await this.connectContainerToPortForwarder(client, container);
109
+ }
110
+ if (this.networkMode && this.networkAliases.length > 0) {
111
+ const network = client.network.getById(this.networkMode);
112
+ await client.container.connectToNetwork(container, network, this.networkAliases);
113
+ }
114
+ if (this.filesToCopy.length > 0 || this.directoriesToCopy.length > 0 || this.contentsToCopy.length > 0) {
115
+ const archive = this.createArchiveToCopyToContainer();
116
+ archive.finalize();
117
+ await client.container.putArchive(container, archive, "/");
118
+ }
119
+ common_1.log.info(`Starting container for image "${this.createOpts.Image}"...`, { containerId: container.id });
120
+ if (this.containerCreated) {
121
+ await this.containerCreated(container.id);
122
+ }
123
+ await client.container.start(container);
124
+ common_1.log.info(`Started container for image "${this.createOpts.Image}"`, { containerId: container.id });
125
+ const inspectResult = await client.container.inspect(container);
126
+ const mappedInspectResult = (0, map_inspect_result_1.mapInspectResult)(inspectResult);
127
+ const boundPorts = bound_ports_1.BoundPorts.fromInspectResult(client.info.containerRuntime.hostIps, mappedInspectResult).filter(this.exposedPorts);
128
+ if (this.startupTimeout !== undefined) {
129
+ this.waitStrategy.withStartupTimeout(this.startupTimeout);
130
+ }
131
+ if (common_1.containerLog.enabled() || this.logConsumer !== undefined) {
132
+ if (this.logConsumer !== undefined) {
133
+ this.logConsumer(await client.container.logs(container));
134
+ }
135
+ if (common_1.containerLog.enabled()) {
136
+ (await client.container.logs(container))
137
+ .on("data", (data) => common_1.containerLog.trace(data.trim(), { containerId: container.id }))
138
+ .on("err", (data) => common_1.containerLog.error(data.trim(), { containerId: container.id }));
139
+ }
140
+ }
141
+ if (this.containerStarting) {
142
+ await this.containerStarting(mappedInspectResult, false);
143
+ }
144
+ await (0, wait_for_container_1.waitForContainer)(client, container, this.waitStrategy, boundPorts);
145
+ const startedContainer = new started_generic_container_1.StartedGenericContainer(container, client.info.containerRuntime.host, inspectResult, boundPorts, inspectResult.Name, this.waitStrategy);
146
+ if (this.containerStarted) {
147
+ await this.containerStarted(startedContainer, mappedInspectResult, false);
148
+ }
149
+ return startedContainer;
150
+ }
151
+ async connectContainerToPortForwarder(client, container) {
152
+ const portForwarder = await port_forwarder_1.PortForwarderInstance.getInstance();
153
+ const portForwarderNetworkId = portForwarder.getNetworkId();
154
+ const excludedNetworks = [portForwarderNetworkId, "none", "host"];
155
+ if (!this.networkMode || !excludedNetworks.includes(this.networkMode)) {
156
+ const network = client.network.getById(portForwarderNetworkId);
157
+ await client.container.connectToNetwork(container, network, []);
158
+ }
159
+ }
160
+ createArchiveToCopyToContainer() {
161
+ const tar = (0, archiver_1.default)("tar");
162
+ for (const { source, target, mode } of this.filesToCopy) {
163
+ tar.file(source, { name: target, mode });
164
+ }
165
+ for (const { source, target, mode } of this.directoriesToCopy) {
166
+ tar.directory(source, target, { mode });
167
+ }
168
+ for (const { content, target, mode } of this.contentsToCopy) {
169
+ tar.append(content, { name: target, mode });
170
+ }
171
+ return tar;
172
+ }
173
+ withCommand(command) {
174
+ this.createOpts.Cmd = command;
175
+ return this;
176
+ }
177
+ withEntrypoint(entrypoint) {
178
+ this.createOpts.Entrypoint = entrypoint;
179
+ return this;
180
+ }
181
+ withName(name) {
182
+ this.createOpts.name = name;
183
+ return this;
184
+ }
185
+ withLabels(labels) {
186
+ this.createOpts.Labels = { ...this.createOpts.Labels, ...labels };
187
+ return this;
188
+ }
189
+ withEnvironment(environment) {
190
+ this.environment = { ...this.environment, ...environment };
191
+ this.createOpts.Env = [
192
+ ...(this.createOpts.Env ?? []),
193
+ ...Object.entries(environment).map(([key, value]) => `${key}=${value}`),
194
+ ];
195
+ return this;
196
+ }
197
+ withTmpFs(tmpFs) {
198
+ this.hostConfig.Tmpfs = { ...this.hostConfig.Tmpfs, ...tmpFs };
199
+ return this;
200
+ }
201
+ withUlimits(ulimits) {
202
+ this.hostConfig.Ulimits = [
203
+ ...(this.hostConfig.Ulimits ?? []),
204
+ ...Object.entries(ulimits).map(([key, value]) => ({
205
+ Name: key,
206
+ Hard: value.hard,
207
+ Soft: value.soft,
208
+ })),
209
+ ];
210
+ return this;
211
+ }
212
+ withAddedCapabilities(...capabilities) {
213
+ this.hostConfig.CapAdd = [...(this.hostConfig.CapAdd ?? []), ...capabilities];
214
+ return this;
215
+ }
216
+ withDroppedCapabilities(...capabilities) {
217
+ this.hostConfig.CapDrop = [...(this.hostConfig.CapDrop ?? []), ...capabilities];
218
+ return this;
219
+ }
220
+ withNetwork(network) {
221
+ this.networkMode = network.getName();
222
+ return this;
223
+ }
224
+ withNetworkMode(networkMode) {
225
+ this.networkMode = networkMode;
226
+ return this;
227
+ }
228
+ withNetworkAliases(...networkAliases) {
229
+ this.networkAliases = [...this.networkAliases, ...networkAliases];
230
+ return this;
231
+ }
232
+ withExtraHosts(extraHosts) {
233
+ this.hostConfig.ExtraHosts = [
234
+ ...(this.hostConfig.ExtraHosts ?? []),
235
+ ...extraHosts.map((extraHost) => `${extraHost.host}:${extraHost.ipAddress}`),
236
+ ];
237
+ return this;
238
+ }
239
+ get hasExposedPorts() {
240
+ return this.exposedPorts.length !== 0;
241
+ }
242
+ withExposedPorts(...ports) {
243
+ const exposedPorts = {};
244
+ for (const exposedPort of ports) {
245
+ exposedPorts[(0, port_1.getContainerPort)(exposedPort).toString()] = {};
246
+ }
247
+ this.exposedPorts = [...this.exposedPorts, ...ports];
248
+ this.createOpts.ExposedPorts = {
249
+ ...this.createOpts.ExposedPorts,
250
+ ...exposedPorts,
251
+ };
252
+ const portBindings = {};
253
+ for (const exposedPort of ports) {
254
+ if ((0, port_1.hasHostBinding)(exposedPort)) {
255
+ portBindings[exposedPort.container] = [{ HostPort: exposedPort.host.toString() }];
256
+ }
257
+ else {
258
+ portBindings[exposedPort] = [{ HostPort: "0" }];
259
+ }
260
+ }
261
+ this.hostConfig.PortBindings = {
262
+ ...this.hostConfig.PortBindings,
263
+ ...portBindings,
264
+ };
265
+ return this;
266
+ }
267
+ withBindMounts(bindMounts) {
268
+ this.hostConfig.Binds = bindMounts
269
+ .map((bindMount) => ({ mode: "rw", ...bindMount }))
270
+ .map(({ source, target, mode }) => `${source}:${target}:${mode}`);
271
+ return this;
272
+ }
273
+ withHealthCheck(healthCheck) {
274
+ const toNanos = (duration) => duration * 1e6;
275
+ this.createOpts.Healthcheck = {
276
+ Test: healthCheck.test,
277
+ Interval: healthCheck.interval ? toNanos(healthCheck.interval) : 0,
278
+ Timeout: healthCheck.timeout ? toNanos(healthCheck.timeout) : 0,
279
+ Retries: healthCheck.retries || 0,
280
+ StartPeriod: healthCheck.startPeriod ? toNanos(healthCheck.startPeriod) : 0,
281
+ };
282
+ return this;
283
+ }
284
+ withStartupTimeout(startupTimeoutMs) {
285
+ this.startupTimeout = startupTimeoutMs;
286
+ return this;
287
+ }
288
+ withWaitStrategy(waitStrategy) {
289
+ this.waitStrategy = waitStrategy;
290
+ return this;
291
+ }
292
+ withDefaultLogDriver() {
293
+ this.hostConfig.LogConfig = {
294
+ Type: "json-file",
295
+ Config: {},
296
+ };
297
+ return this;
298
+ }
299
+ withPrivilegedMode() {
300
+ this.hostConfig.Privileged = true;
301
+ return this;
302
+ }
303
+ withUser(user) {
304
+ this.createOpts.User = user;
305
+ return this;
306
+ }
307
+ withReuse() {
308
+ this.reuse = true;
309
+ return this;
310
+ }
311
+ withPullPolicy(pullPolicy) {
312
+ this.pullPolicy = pullPolicy;
313
+ return this;
314
+ }
315
+ withIpcMode(ipcMode) {
316
+ this.hostConfig.IpcMode = ipcMode;
317
+ return this;
318
+ }
319
+ withCopyFilesToContainer(filesToCopy) {
320
+ this.filesToCopy = [...this.filesToCopy, ...filesToCopy];
321
+ return this;
322
+ }
323
+ withCopyDirectoriesToContainer(directoriesToCopy) {
324
+ this.directoriesToCopy = [...this.directoriesToCopy, ...directoriesToCopy];
325
+ return this;
326
+ }
327
+ withCopyContentToContainer(contentsToCopy) {
328
+ this.contentsToCopy = [...this.contentsToCopy, ...contentsToCopy];
329
+ return this;
330
+ }
331
+ withWorkingDir(workingDir) {
332
+ this.createOpts.WorkingDir = workingDir;
333
+ return this;
334
+ }
335
+ withResourcesQuota({ memory, cpu }) {
336
+ this.hostConfig.Memory = memory !== undefined ? memory * 1024 ** 3 : undefined;
337
+ this.hostConfig.NanoCpus = cpu !== undefined ? cpu * 10 ** 9 : undefined;
338
+ return this;
339
+ }
340
+ withSharedMemorySize(bytes) {
341
+ this.hostConfig.ShmSize = bytes;
342
+ return this;
343
+ }
344
+ withLogConsumer(logConsumer) {
345
+ this.logConsumer = logConsumer;
346
+ return this;
347
+ }
348
+ }
349
+ exports.GenericContainer = GenericContainer;
350
+ //# sourceMappingURL=generic-container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic-container.js","sourceRoot":"","sources":["../../src/generic-container/generic-container.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,11 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
3
  import { RestartOptions, StartedTestContainer, StopOptions, StoppedTestContainer } from "../test-container";
4
- import Dockerode from "dockerode";
5
- import { ContentToCopy, DirectoryToCopy, ExecResult, FileToCopy, Labels } from "../docker/types";
6
- import { InspectResult } from "../docker/functions/container/inspect-container";
7
- import { BoundPorts } from "../bound-ports";
4
+ import Dockerode, { ContainerInspectInfo } from "dockerode";
5
+ import { ContentToCopy, DirectoryToCopy, ExecResult, FileToCopy, Labels } from "../types";
8
6
  import { Readable } from "stream";
9
- import { WaitStrategy } from "../wait-strategy/wait-strategy";
7
+ import { WaitStrategy } from "../wait-strategies/wait-strategy";
8
+ import { BoundPorts } from "../utils/bound-ports";
10
9
  export declare class StartedGenericContainer implements StartedTestContainer {
11
10
  private readonly container;
12
11
  private readonly host;
@@ -16,7 +15,7 @@ export declare class StartedGenericContainer implements StartedTestContainer {
16
15
  private readonly waitStrategy;
17
16
  private stoppedContainer?;
18
17
  private stopContainerLock;
19
- constructor(container: Dockerode.Container, host: string, inspectResult: InspectResult, boundPorts: BoundPorts, name: string, waitStrategy: WaitStrategy);
18
+ constructor(container: Dockerode.Container, host: string, inspectResult: ContainerInspectInfo, boundPorts: BoundPorts, name: string, waitStrategy: WaitStrategy);
20
19
  protected containerIsStopping?(): Promise<void>;
21
20
  stop(options?: Partial<StopOptions>): Promise<StoppedTestContainer>;
22
21
  protected containerIsStopped?(): Promise<void>;
@@ -31,6 +30,7 @@ export declare class StartedGenericContainer implements StartedTestContainer {
31
30
  getNetworkNames(): string[];
32
31
  getNetworkId(networkName: string): string;
33
32
  getIpAddress(networkName: string): string;
33
+ private getNetworkSettings;
34
34
  copyFilesToContainer(filesToCopy: FileToCopy[]): Promise<void>;
35
35
  copyDirectoriesToContainer(directoriesToCopy: DirectoryToCopy[]): Promise<void>;
36
36
  copyContentToContainer(contentsToCopy: ContentToCopy[]): Promise<void>;