Releases: testcontainers/testcontainers-go
v0.22.0
What's Changed
⚠️ Breaking Changes
- chore(deps): bump docker dependencies to v24.0.5+incompatible (#1394) @mdelapenya
As a consequence of the bugs described in #1359, we had to bump the Docker version to a major version, which moved the types.AuthConfig
type to registry.AuthConfig
. We used that type as public API, therefore, our API has changed the signature of the method of an interface, which is used to build images from a Dockerfile. Please look at #1394 to understand the changes in the GetAuthConfigs
method.
🚀 Features
- feat(redpanda): Add option to enable topic auto-creation (#1360) @ladislavmacoun
- feat: fail-fast of wait.LogStrategy (#1304) @frozenbonito
📖 Documentation
- docs: fix link to GH action in docs site (#1416) @mdelapenya
🧹 Housekeeping
- chore: fix branch protection settings (#1418) @mdelapenya
- chore(ci): set LongPathsEnabled on WIndows workers (#1415) @mdelapenya
- chore(ci): define a pipeline with multiple gates (#1414) @mdelapenya
- test: fix TestGetDockerConfig (#1413) @AlexanderYastrebov
- chore(ci): add a Windows pipeline for running the tests (#1375) @mdelapenya
📦 Dependency updates
- chore(deps): bump github.com/containerd/containerd from 1.6.19 to 1.7.3 (#1378) @dependabot
- chore: run go mod tidy (#1417) @mdelapenya
- chore(deps): bump github.com/tidwall/gjson from 1.14.4 to 1.15.0 in /modules/couchbase (#1376) @dependabot
- chore(deps): bump github.com/opencontainers/image-spec from 1.1.0-rc2 to 1.1.0-rc4 (#1312) @dependabot
- chore(deps): bump github.com/hashicorp/consul/api from 1.20.0 to 1.23.0 in /examples/consul (#1381) @dependabot
- chore(deps): bump github.com/twmb/franz-go from 1.13.5 to 1.14.3 in /modules/redpanda (#1387) @dependabot
- chore(deps): bump github.com/nats-io/nats.go from 1.26.0 to 1.28.0 in /examples/nats (#1389) @dependabot
- chore(deps): bump golang.org/x/text from 0.9.0 to 0.11.0 in /modulegen (#1388) @dependabot
- chore(deps): bump google.golang.org/api from 0.125.0 to 0.134.0 in /examples (#1412) @mdelapenya
- chore(deps): bump golang.org/x/mod and github.com/aws/aws-sdk-go-v2/config in /modules/localstack (#1410) @mdelapenya
- chore(deps): bump k8s.io/client-go from 0.27.2 to 0.27.4 in /modules/k3s (#1404) @dependabot
- chore(deps): bump cloud.google.com/go in /examples (#1411) @mdelapenya
- chore(deps): bump github.com/neo4j/neo4j-go-driver/v5 from 5.9.0 to 5.10.0 in /modules/neo4j (#1318) @dependabot
- chore(deps): bump google.golang.org/grpc to 1.57.0 (#1409) @mdelapenya
- chore(deps): bump go.mongodb.org/mongo-driver from 1.11.6 to 1.12.0 in /examples/mongodb (#1311) @dependabot
- chore(deps): bump docker dependencies to v24.0.5+incompatible (#1394) @mdelapenya
- chore: remove gotestsum to reduce the number of transitive dependencies (#1303) @mdelapenya
v0.21.0
What's Changed
🚀 Features
- feat: provide container logs on container startup failures (#1297) @mdelapenya
- feat: setup docker_host discovery strategies properly (#1161) @mdelapenya
- added NATS JetStream example (#1190) @adoublef
- feat: adds k3s module (#1194) @mritunjaysharma394
🐛 Bug Fixes
- fix: use first exposed port by default in HTTP wait strategy (#1086) @anuraaga
- fix: prefer cross-platform default DOCKER_HOST (#1294) @danielorbach
- fix: support detecting if k3s module is running from inside a Docker container (#1289) @rfratto
- fix: stronger validation for the schema of the Docker socket path (#1286) @mdelapenya
- fix: return proper docker socket for remote Docker hosts (#1281) @mdelapenya
- #1152 execute HostConfigModifier at last (#1153) @xmh19936688
- fix: align header while log producers are reading (#1085) @Dirk007
📖 Documentation
- docs: document CI services (#1298) @mdelapenya
- Update java docs domain (#1279) @leocross
- docs: fix passing env vars example (#1252) @borod108
- docs: document the Go version (#1246) @mdelapenya
- fix: update link to modules docs (#1192) @mdelapenya
- docs: enrich docs for modules (#1167) @mdelapenya
🧹 Housekeeping
- Fix locations set to None in sitemap (#1296) @leocross
- fix: use correct path for gotestsum output (#1287) @sebastianbuechler
- chore: simplify ReadConfig signature, not passing context (#1292) @mdelapenya
- fix: skip host network tests in Docker Desktop (#1285) @mdelapenya
- chore: Removes the refercence about docker 22.06 from the docker-compose docs (#1243) @stubents
- chore: use fixed version in k3s module (#1225) @mritunjaysharma394
- chore: support for bumping ryuk in an automated manner (#1195) @mdelapenya
📦 Dependency updates
- chore(deps): bump github.com/moby/term from 0.0.0-20221128092401-c43b287e0e0f to 0.5.0 (#1253) @dependabot
- chore(deps): bump github.com/aws/aws-sdk-go from 1.44.268 to 1.44.273 in /modules/localstack (#1271) @dependabot
- chore(deps): bump github.com/neo4j/neo4j-go-driver/v5 from 5.8.1 to 5.9.0 in /modules/neo4j (#1265) @dependabot
- chore(deps): bump google.golang.org/api from 0.124.0 to 0.125.0 in /examples (#1284) @mdelapenya
- chore(deps): bump github.com/twmb/franz-go from 1.13.4 to 1.13.5 in /modules/redpanda (#1283) @dependabot
- chore(deps): bump github.com/stretchr/testify from 1.8.3 to 1.8.4 (#1282) @mdelapenya
- chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.19 to 1.18.25 in /modules/localstack (#1222) @dependabot
- chore(deps): bump golang.org/x/sys from 0.7.0 to 0.8.0 (#1202) @dependabot
- chore(deps): bump github.com/stretchr/testify from 1.8.2 to 1.8.3 (#1232) @dependabot
- chore(deps): bump cloud.google.com/go/spanner from 1.45.1 to 1.46.0 in /examples/spanner (#1226) @dependabot
- chore(deps): bump go.mongodb.org/mongo-driver from 1.11.4 to 1.11.6 in /examples/mongodb (#1233) @dependabot
- chore(deps): bump google.golang.org/api from 0.123.0 to 0.124.0 in /examples (#1244) @mdelapenya
- chore(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.31.3 to 1.33.1 in /modules/localstack (#1241) @dependabot
- chore(deps): bump github.com/aws/aws-sdk-go from 1.44.244 to 1.44.268 in /modules/localstack (#1242) @dependabot
- chore(deps): bump github.com/imdario/mergo from 0.3.12 to 0.3.15 (#1204) @dependabot
- chore(deps): bump cloud.google.com/go/firestore from 1.9.0 to 1.10.0 in /examples/firestore (#1216) @dependabot
- chore(deps): bump k8s.io/client-go from 0.22.5 to 0.27.2 in /modules/k3s (#1211) @dependabot
- chore(deps): bump go.mongodb.org/mongo-driver from 1.11.3 to 1.11.4 in /examples/mongodb (#1092) @dependabot
- chore(deps): bump github.com/neo4j/neo4j-go-driver/v5 from 5.8.0 to 5.8.1 in /modules/neo4j (#1206) @dependabot
- chore(deps): bump github.com/twmb/franz-go from 1.13.3 to 1.13.4 in /modules/redpanda (#1201) @dependabot
- chore(deps): bump google.golang.org/api from 0.121.0 to 0.123.0 in /examples (#1229) @mdelapenya
- chore(deps): bump github.com/stretchr/testify from 1.8.2 to 1.8.3 (#1228) @mdelapenya
- chore(deps): bump pymdown-extensions from 9.0 to 10.0 (#1193) @dependabot
- chore(deps): bump github.com/docker/distribution from 2.8.1+incompatible to 2.8.2+incompatible (#1189) @mdelapenya
v0.20.1
What's Changed
🐛 Bug Fixes
- Revert "fix: don't panic when logs waits for more than 5 seconds (#947)" (#1164) @mdelapenya
- Fix race condition while initializing docker client (#1160) @nhatthm
📖 Documentation
- fix: define a two-phase release process (#1163) @mdelapenya
🧹 Housekeeping
- fix: define a two-phase release process (#1163) @mdelapenya
- ci(lint): enable misspell and gci linters (#1162) @mmorel-35
v0.20.0
Maintainers' note
We want to inform you about an issue that occurred with the release, v0.20.0
. Due to an unintended error, the git tags associated with v0.20.0
were created in an inconsistent state. As a result, the tags were removed and recreated to accurately reflect the intended release state. This situation could have affected users relying on the Go proxy cache during the short time window between the initial release and the tag correction.
To address this issue, we have now created the patch release v0.20.1
, which is based on the correct state of the project and provides a seamless transition from v0.20.0
.
To ensure that you have the latest updates, we recommend updating your dependencies to use v0.20.1
instead of v0.20.0
to ensure you have the correct and stable version.
We apologise for any inconvenience this may have caused and appreciate your understanding. If you have any questions or encounter any issues, please don't hesitate to reach out to us.
Thank you for your continued support!
What's Changed
⚠️ Breaking Changes
The signature of the testcontainers.NewDockerClient
has changed in order to provide a simpler API for the future changes, and for that reason we were forced to break it and simplify its signature, returning the client and an error, instead of an instance of the Testcontainers properties and the host. At the same time, the TestContainersConfig
struct representing the configuration properties has been renamed to TestcontainersConfig
, which is brings consistency with the name of the project.
- break: disable reaper at config level (#941) @mdelapenya
🚀 Features
- feat: Add Redpanda module (#1058) @weeco
- feat: Add ability to disable internal checks for
wait.HostPortStrategy
(#1039) @RiverPhillips - feat: use an interface for container customization in modules (#1042) @mdelapenya
- Add support for LocalStack v2 (#994) @eddumelendez
- feat: provide container lifecycle hooks (#1036) @mdelapenya
- feat: support for wait.ForExec with response matcher (#1035) @mdelapenya
- feat: building blocks for Go modules (#1016) @mdelapenya
- feat: add Redis module (#993) @mdelapenya
- feat: Auto detect the use of Podman from DOCKER_HOST (#982) @jtwatson
- feat: add Neo4j module (#937) @fbiville
- Add MySQL module (#943) @eddumelendez
- feat: add Vault Module (#942) @alihanyalcin
- feat: add Postgres module (#945) @mdelapenya
- feat: add status check to wait strategies (#944) @frozenbonito
- add couchbase module (#876) @alihanyalcin
🐛 Bug Fixes
- fix: don't panic when logs waits for more than 5 seconds (#947) @martin-sucha
- fix: generated code must compile (#1059) @mdelapenya
- fix: proper lifecycle for following logs using consumers (#366) @slsyy
📖 Documentation
- docs: include the testcontainers-go version in which a module was added (#1081) @mdelapenya
- docs: use consistent format in Neo4j docs (#1057) @mdelapenya
- docs: document tc_host inside the networking section (#1041) @sgloutnikov
- docs: add permalink to mkdocs headings (#1032) @mdelapenya
- docs: fix technology name (#990) @mdelapenya
- Reorder docs language links (#985) @leocross
- docs: simplify MySQL code snippet in docs (#984) @mdelapenya
- docs: extend Couchbase docs (#971) @mdelapenya
- fix: update code snippet for Docker Auth (#940) @mdelapenya
🧹 Housekeeping
- Revert "chore: run pipelines in order (#1130)" (#1157) @mdelapenya
- chore: run pipelines in order (#1130) @mdelapenya
- fix: escape slashes (#1084) @mdelapenya
- chore: support for multiple lifecycles defined by the user (#1037) @mdelapenya
- Add support for Neo4j configuration (#992) @fbiville
- Revert "chore: render logos from the base location (#995)" (#998) @mdelapenya
- chore: skip CI builds when updating the docs (#996) @mdelapenya
- chore: render logos from the base location (#995) @mdelapenya
- chore: include how to install the module in the generated docs (#991) @mdelapenya
- chore: use testdata as a Go idiom (#983) @mdelapenya
- chore: do not force SSL disabled in the connection string (#981) @mdelapenya
- Use
hashicorp/consul
in examples (#950) @eddumelendez - chore: always close Docker client (#939) @mdelapenya
- fix: move to the right dir to git commit when releasing (#931) @mdelapenya
📦 Dependency updates
- chore(deps): bump dependencies in /modules/localstack (#1158) @mdelapenya
- chore(deps): bump golang.org/x/sys from 0.6.0 to 0.7.0 (#1088) @dependabot
- chore(deps): bump github.com/couchbase/gocb/v2 from 2.6.2 to 2.6.3 in /modules/couchbase (#1107) @dependabot
- chore(deps): bump github.com/docker/docker v23.0.5+incompatible in modules and examples (#1156) @mdelapenya
- chore(deps): bump google dependencies in /examples (#1155) @mdelapenya
- chore(deps): bump github.com/docker/docker from 23.0.3+incompatible to 23.0.5+incompatible (#1134) @dependabot
- chore(deps): bump golang.org/x/sync from 0.1.0 to 0.2.0 in /modules/compose (#1143) @dependabot
- chore(deps): bump github.com/docker/compose/v2 from 2.17.2 to 2.17.3 in /modules/compose (#1149) @dependabot
- chore(deps): bump dependencies in /modules/redpanda (#1154) @mdelapenya
- chore(deps): bump github.com/apache/pulsar-client-go from 0.9.0 to 0.10.0 in /modules/pulsar (#1105) @dependabot
- chore(deps): bump github.com/docker/{cli|docker} from 23.0.3+incompatible to 23.0.5+incompatible in /modules (#1132) @mdelapenya
- chore(deps): bump google.golang.org/api to 0.120.0 in /examples (#1131) @mdelapenya
- chore(deps): bump github.com/cenkalti/backoff/v4 from 4.2.0 to 4.2.1 in /modules/couchbase (#1099) @dependabot
- chore(deps): bump github.com/go-sql-driver/mysql from 1.7.0 to 1.7.1 in /modules/mysql (#1122) @dependabot
- chore(deps): bump github.com/lib/pq from 1.10.7 to 1.10.9 in /modules/postgres (#1127) @dependabot
- chore(deps): bump github.com/neo4j/neo4j-go-driver/v5 from 5.7.0 to 5.8.0 in /modules/neo4j (#1126) @dependabot
- chore(deps): bump golang.org/x/text from 0.8.0 to 0.9.0 in /modulegen (#1095) @dependabot
- chore(deps): bump gotest.tools/gotestsum from 1.9.0 to 1.10.0 (#1129) @mdelapenya
- chore(deps): bump aws deps in /modules/localstack (#1077) @mdelapenya
- chore(deps): bump docker libs in /modules/compose (#1076) @mdelapenya
- chore(deps): bump github.com/docker/docker from 23.0.2+incompatible to 23.0.3+incompatible in /modules (#1074) @mdelapenya
- chore(deps): bump github.com/docker/docker from 23.0.2+incompatible to 23.0.3+incompatible (#1060) @mdelapenya
- chore(deps): bump github.com/neo4j/neo4j-go-driver/v5 from 5.6.0 to 5.7.0 in /modules/neo4j (#1030) @dependabot
- chore(deps): bump github.com/docker/docker from 23.0.1+incompatible to 23.0.2+incompatible (#1026) @mdelapenya
- chore(deps): bump github.com/opencontainers/runc from 1.1.3 to 1.1.5 (#1017) @mdelapenya
- chore(deps): bump localstack dependencies in /modules/localstack (#980) @mdelapenya
- chore: update Go deps in modules (#979) @mdelapenya
- chore(deps): bump google.golang.org/grpc from 1.53.0 to 1.54.0 in /examples (#973) @mdelapenya
- chore(deps): bump compose dependencies in /modules/compose (#974) @mdelapenya
- chore(deps): bump github.com/aws/aws-sdk-go in /modules/localstack (#972) @mdelapenya
- chore(deps): bump cloud.google.com/go/pubsub from 1.28.0 to 1.30.0 in /examples/pubsub (#968) @dependabot
- chore(deps): bump go.mongodb.org/mongo-driver from 1.11.2 to 1.11.3 in /examples/mongodb (#953) @dependabot
- chore(deps): bump github.com/couchbase/gocb/v2 from 2.6.1 to 2.6.2 in /modules/couchbase (#952) @dependabot
- chore: bump Ryuk to v0.4.0 release (#936) @mdelapenya
- chore(deps): bump github.com/aws/aws-sdk-go from 1.44.211 to 1.44.217 in /modules/localstack (#934) @dependabot
- chore(deps): bump github.com/hashicorp/consul/api from 1.19.1 to 1.20.0 in /examples/consul (#933) @dependabot
v0.19.0
What's Changed
⚠️ Breaking Changes
If you are relying in the deprecated RegistryCred
field from the ContainerRequest struct, then we broke your code 😞: the field is not used anymore therefore your own registry credentials won't be used. We expected that the credentials would live into the credential helpers, therefore would be automatically populated but, thanks to @srabraham, we discovered it's not. If that's your case you have to populate the DOCKER_AUTH_CONFIG
env var with your own credentials, as @srabraham did here #869 (comment).
- feat: support for reading auth credentials from docker credential helpers (#869) @mdelapenya
🔒 Security
- chore: bump golang/x/net and containerd (#858) @mdelapenya
🚀 Features
- remove volumes on down (#910) @cgoodsirsmyth-pp
- Allow numerical characters in example names/titles (#922) @fbiville
- feat: convert pulsar example into a Go module (#872) @mdelapenya
- feat: add basic auth support in the wait.ForHTTP strategy (#301) @nevins-b
🐛 Bug Fixes
- Fix stop services in docker compose (#918) @sko00o
- bug(892): include godog in replace block of compose gomod (#893) @cgoodsirsmyth-pp
- fix: proper sorting of dependabot updates when generating a module (#894) @mdelapenya
- fix: update modules path in generator (#877) @mdelapenya
📖 Documentation
- docs: add social links in the website (#890) @mdelapenya
- Update docs link for tc-node (#878) @cristianrgreco
- docs: add usage reference in OpenTelemetry Collector (#861) @dmitryax
- docs: include haskell logo to the website (#860) @mdelapenya
🧹 Housekeeping
- chore: prepare Go modules for the next release (#929) @mdelapenya
- fix: use right paths in the release script (#928) @mdelapenya
- chore: bump minimal compile version of GO to 1.19 (#924) @mdelapenya
- chore: sync governance files (#909) @mdelapenya
- chore: monthly updates for dependabot (#906) @mdelapenya
- chore: simplify env vars for localstack module (#873) @mdelapenya
- chore: remove replace directive in modules (#871) @mdelapenya
- chore: bump testcontainers-go in Go modules (#870) @mdelapenya
- chore: sync governance files (#859) @mdelapenya
- chore: prepare for next minor development cycle (0.19.0) (#840) @mdelapenya
- fix: tune release script (#839) @mdelapenya
📦 Dependency updates
- chore: prepare Go modules for the next release (#929) @mdelapenya
- chore: sync dependencies (#927) @mdelapenya
- chore(deps): bump github.com/moby/buildkit from 0.11.2 to 0.11.4 in /modules/compose (#926) @dependabot
- chore: sync dependencies in Go modules (#920) @mdelapenya
- chore(deps): bump dependencies (#919) @mdelapenya
- chore: update module dependencies (#911) @mdelapenya
- chore(deps): bump google.golang.org/api from 0.110.0 to 0.111.0 in /examples (#908) @mdelapenya
- chore(deps): bump github.com/aws/aws-sdk-go deps in localstack module (#907) @mdelapenya
- chore(deps): bump github.com/jackc/pgx/v4 from 4.18.0 to 4.18.1 in /examples/cockroachdb (#895) @dependabot
- chore(deps): bump github.com/containerd/containerd from 1.6.18 to 1.6.19 (#897) @dependabot
- chore(deps): bump github.com/compose-spec/compose-go from 1.11.0 to 1.12.0 in /modules/compose (#899) @dependabot
- chore: monthly updates for dependabot (#906) @mdelapenya
- bug(892): include godog in replace block of compose gomod (#893) @cgoodsirsmyth-pp
- chore(deps): bump github.com/lib/pq from 0.0.0-20150723085316-0dad96c0b94f to 1.10.7 in /examples/postgres (#887) @dependabot
- chore(deps): bump golang.org/x/mod from 0.6.0-dev.0.20220419223038-86c51ed26bb4 to 0.8.0 in /modules/localstack (#886) @dependabot
- chore(deps): bump github.com/hashicorp/consul/api from 1.18.0 to 1.19.1 in /examples/consul (#889) @dependabot
- chore(deps): bump github.com/aws/aws-sdk-go from 1.44.204 to 1.44.209 in /modules/localstack (#884) @dependabot
- chore(deps): bump github.com/stretchr/testify from 1.8.1 to 1.8.2 (#891) @mdelapenya
- chore(deps): bump github.com/compose-spec/compose-go from 1.9.0 to 1.11.0 in /modules/compose (#865) @dependabot
- chore(deps): bump github.com/docker deps from 23.0.0+incompatible to 23.0.1+incompatible (#875) @mdelapenya
- chore(deps): bump github.com/aws/aws-sdk-go libs in /modules/localstack (#874) @mdelapenya
- chore: remove replace directive in modules (#871) @mdelapenya
- chore: bump testcontainers-go in Go modules (#870) @mdelapenya
v0.18.0
What's Changed
🚀 Features
- chore: move host-config and endpoint settings to a specific modifiers (#633) @mdelapenya
- feat: support generating Go modules or example modules (#826) @mdelapenya
- feat: add localstack module (#800) @mdelapenya
- feat: support for titles in examples (#775) @mdelapenya
- feat: support passing registry credentials to the reaper (#647) @mdelapenya
🐛 Bug Fixes
- fix: always absolute paths when tarring files to a Docker container (#814) @mdelapenya
- fix: nil pointer dereference in HealthStrategy (#802) @massenz
- fix: Synchronise writes to dockerCompose.containers map (#812) @joshua-hill-form3
- Verify Reaper state to create new or return existing instance (#782) @mdonkers
- fix: use right import package for compose in docs (#791) @mdelapenya
- Reaper container should not be labeled with "org.testcontainers.golang.sessionId" (#721) @rzajac
- fix: close response body in http strategy (#718) @kruskall
📖 Documentation
- chore: automate the creation of a release (#776) @mdelapenya
- docs: add intel as user (#798) @sicoyle
- fix: use right import package for compose in docs (#791) @mdelapenya
- simplify mongodb test (#726) @ravilushqa
- MongoDB example (#723) @ravilushqa
- add consul example (#722) @bo-er
🧹 Housekeeping
- chore: automate the creation of a release (#776) @mdelapenya
- chore: update Docker labels for containers (#813) @mdelapenya
- chore: restructure Docker helper methods (#799) @mdelapenya
- chore: extract docker host calculation to an internal package (#796) @mdelapenya
- chore: run "go mod tidy" automatically when creating examples (#794) @mdelapenya
- chore: build images with backoff retries (#792) @mdelapenya
- Add devcontainer file (#765) @eddumelendez
- chore: check dependabot dependencies weekly (#789) @mdelapenya
- chore: support running MySQL compose tests in ARM (#712) @mdelapenya
📦 Dependency updates
- chore(deps): bump github.com/docker/compose/v2 from 2.15.1 to 2.16.0 in /modules/compose (#824) @dependabot
- chore(deps): bump github.com/aws/aws-sdk-go from 1.44.192 to 1.44.200 in /modules/localstack (#835) @dependabot
- chore(deps): bump github.com/imdario/mergo from 0.3.12 to 0.3.13 in /modules/localstack (#828) @dependabot
- chore(deps): bump google.golang.org/api from 0.109.0 to 0.110.0 in /examples (#836) @mdelapenya
- chore(deps): bump go.mongodb.org/mongo-driver from 1.11.1 to 1.11.2 in /examples/mongodb (#831) @dependabot
- chore(deps): bump google.golang.org/grpc from 1.52.3 to 1.53.0 in /examples (#827) @mdelapenya
- chore(deps): bump github.com/containerd/containerd from 1.6.16 to 1.6.17 (#817) @dependabot
- chore(deps): bump golang.org/x/text from 0.6.0 to 0.7.0 (#818) @dependabot
- chore(deps): bump golang.org/x/sys from 0.4.0 to 0.5.0 (#816) @dependabot
- chore(deps): bump github.com/jackc/pgx/v4 from 4.17.2 to 4.18.0 in /examples/cockroachdb (#819) @dependabot
- chore(deps): bump google.golang.org/api from 0.108.0 to 0.109.0 in /examples (#810) @mdelapenya
- chore(deps): bump cloud.google.com/go/spanner from 1.43.0 to 1.44.0 in /examples/spanner (#806) @dependabot
- chore: bump containerd in examples (#797) @mdelapenya
- chore(deps): bump github.com/containerd/containerd from 1.6.15 to 1.6.16 (#793) @dependabot
- chore(deps): bump google.golang.org/grpc from 1.52.1 to 1.52.3 in /examples (#790) @mdelapenya
- chore: check dependabot dependencies weekly (#789) @mdelapenya
- chore(deps): bump google.golang.org/grpc from 1.52.0 to 1.52.1 in /examples (#783) @mdelapenya
- chore(deps): bump cloud.google.com/go/spanner from 1.42.0 to 1.43.0 in /examples/spanner (#771) @dependabot
- chore(deps): bump github.com/docker/compose/v2 from 2.15.0 to 2.15.1 in /modules/compose (#735) @dependabot
- chore(deps): bump gotest.tools/gotestsum from 1.8.2 to 1.9.0 (#774) @mdelapenya
- chore(deps): bump github.com/compose-spec/compose-go from 1.8.2 to 1.9.0 in /modules/compose (#772) @dependabot
- chore(deps): bump google.golang.org/api from 0.105.0 to 0.108.0 in /examples (#773) @mdelapenya
- chore(deps): bump google.golang.org/grpc from 1.51.0 to 1.52.0 in /examples (#741) @mdelapenya
- chore(deps): bump github.com/containerd/containerd from 1.6.14 to 1.6.15 (#733) @dependabot
- chore(deps): bump github.com/compose-spec/compose-go from 1.8.1 to 1.8.2 in /modules/compose (#734) @dependabot
- chore(deps): bump github.com/docker/compose/v2 from 2.14.2 to 2.15.0 in /modules/compose (#732) @dependabot
- chore(deps): bump golang.org/x/text from 0.5.0 to 0.6.0 (#725) @dependabot
- chore(deps): bump golang.org/x/sys from 0.3.0 to 0.4.0 (#724) @dependabot
- chore: move e2e module to postgres example module (#717) @mdelapenya
- chore: bump containerd transitive dep in examples (#715) @mdelapenya
- chore(deps): bump github.com/containerd/containerd from 1.6.12 to 1.6.14 (#703) @dependabot
- chore(deps): bump github.com/compose-spec/compose-go from 1.8.0 to 1.8.1 in /modules/compose (#710) @dependabot
- chore: bump testcontainers-go to 0.17.0 in examples (#714) @mdelapenya
- chore(deps): bump github.com/docker/compose/v2 from 2.14.0 to 2.14.2 in /modules/compose (#711) @dependabot
- chore: simplify compose replace directives (#713) @mdelapenya
- chore: add compose module to dependabot (#709) @mdelapenya
v0.17.0
What's Changed
⚠️ Breaking Changes
Given the amount of issues after #476, causing consumers of this library to update their dependencies with multiple replace directives in their go.mod
files, we have moved compose code to a separate module. Therefore the majority of the users of the library will only need to replace Docker dependency with the one used in this library, which is simpler in terms of usage. Please see Install instructions for further information.
replace (
github.com/docker/docker => github.com/docker/docker v20.10.3-0.20221013203545-33ab36d6b304+incompatible // 22.06 branch
)
On the other hand, users of native Docker Compose code will still need all the replace directives, as described in the Compose docs.
- chore: move compose code to a separate module (#650) @mdelapenya
🚀 Features
- feat: provide a tool to generate examples from code (#618) @mdelapenya
🐛 Bug Fixes
- fix: avoid panics when checking container state and container.raw is nil (#635) @mdelapenya
📖 Documentation
- docs: refine onboarding process with quickstart guide (#706) @mdelapenya
- chore: add mysql example (#700) @mdelapenya
- chore: postgres example (#674) @mdelapenya
- Add bigtable example (#676) @eddumelendez
- Improve datastore, firestore, pubsub and spanner tests (#670) @eddumelendez
- Add toxiproxy example (#643) @eddumelendez
- Add spanner example (#642) @eddumelendez
- Add pubsub example (#640) @eddumelendez
- Add datastore example (#638) @eddumelendez
- Add firestore example (#637) @eddumelendez
- feat: provide a tool to generate examples from code (#618) @mdelapenya
- chore: bump version in mkdocs (#630) @mdelapenya
- docs: remove code snippets from main README (#631) @mdelapenya
- docs: document replace directive for Docker Compose (#632) @mdelapenya
🧹 Housekeeping
- chore: reduce concurrent builds (#702) @mdelapenya
- chore: update mkdocs format to go-yaml v3 (#667) @mdelapenya
- chore: generate dependabot configs for examples (#654) @mdelapenya
- chore: format dependabot using go-yaml indents (#658) @mdelapenya
- chore: remove quotes from dependabot updates (#655) @mdelapenya
- fix: do not create garbage in examples nav bar (#652) @mdelapenya
- chore: sync governance files (#641) @testcontainersbot
- chore: adjust generator for the docs site (#639) @mdelapenya
📦 Dependency updates
- chore: move compose code to a separate module (#650) @mdelapenya
- chore: move redis-specific tests to the example module (#701) @mdelapenya
- chore: bump transitive dependencies (#527) @mdelapenya
- chore: add mysql example (#700) @mdelapenya
- chore(deps): bump google.golang.org/api from 0.104.0 to 0.105.0 (#699) @mdelapenya
- chore(deps): bump google.golang.org/api from 0.103.0 to 0.104.0 in /examples/firestore (#683) @dependabot
- chore(deps): bump cloud.google.com/go/spanner from 1.41.0 to 1.42.0 in /examples/spanner (#688) @dependabot
- chore(deps): bump google.golang.org/api from 0.103.0 to 0.104.0 in /examples/pubsub (#685) @dependabot
- chore(deps): bump google.golang.org/api from 0.103.0 to 0.104.0 in /examples/spanner (#684) @dependabot
- chore(deps): bump google.golang.org/grpc from 1.50.1 to 1.51.0 in /examples/firestore (#686) @dependabot
- chore(deps): bump google.golang.org/api from 0.102.0 to 0.104.0 in /examples/bigtable (#680) @dependabot
- chore(deps): bump google.golang.org/api from 0.103.0 to 0.104.0 in /examples/datastore (#678) @dependabot
- chore(deps): bump golang.org/x/text from 0.3.7 to 0.5.0 (#660) @dependabot
- chore(deps): bump github.com/magiconair/properties from 1.8.6 to 1.8.7 (#677) @dependabot
- chore(deps): bump github.com/containerd/containerd from 1.6.10 to 1.6.12 (#675) @dependabot
- chore: run go mod tidy in examples (#672) @mdelapenya
- chore: group dependabot updates (#668) @mdelapenya
- chore(deps): bump github.com/docker/compose/v2 from 2.12.2 to 2.14.0 (#657) @dependabot
- chore(deps): bump github.com/stretchr/testify from 1.8.0 to 1.8.1 (#583) @dependabot
- chore(deps): bump github.com/cenkalti/backoff/v4 from 4.1.3 to 4.2.0 (#656) @dependabot
- chore(deps): bump github.com/containerd/containerd from 1.6.8 to 1.6.10 (#621) @dependabot
- chore(deps): bump golang.org/x/sys from 0.1.0 to 0.3.0 (#651) @dependabot
- chore: run go mod tidy for all examples (#649) @mdelapenya
v0.16.0
What's Changed
⚠️ Breaking Changes
-
feat: support native docker compose api (#476) @baez90
Docker Compose v2 is implemented in Go, and for that reason we have decided to provide native Go support to Compose, deprecating the shell-escape based
LocalDockerCompose
, which was invoking the local binary of compose. Given the version includes the Compose dependency, and the Docker folks added a replace directive until the upcoming Docker 22.06 release is out, we were forced to add it too, causing consumers of Testcontainers for Go to add the following replace directive too.
replace (
github.com/docker/cli => github.com/docker/cli v20.10.3-0.20221013132413-1d6c6e2367e2+incompatible // 22.06 master branch
github.com/docker/docker => github.com/docker/docker v20.10.3-0.20221013203545-33ab36d6b304+incompatible // 22.06 branch
github.com/moby/buildkit => github.com/moby/buildkit v0.10.1-0.20220816171719-55ba9d14360a // same as buildx
github.com/opencontainers/runc => github.com/opencontainers/runc v1.1.2 // Can be removed on next bump of containerd to > 1.6.4
// For k8s dependencies, we use a replace directive, to prevent them being
// upgraded to the version specified in containerd, which is not relevant to the
// version needed.
// See https://github.com/docker/buildx/pull/948 for details.
// https://github.com/docker/buildx/blob/v0.8.1/go.mod#L62-L64
k8s.io/api => k8s.io/api v0.22.4
k8s.io/apimachinery => k8s.io/apimachinery v0.22.4
k8s.io/client-go => k8s.io/client-go v0.22.4
)
-
fix: do not prepend garbage in the container.Exec response (#624) @mdelapenya
The signature of the
Exec
function on a container created by the library has been changed in what we thought it was a non-breaking change manner, using variadic arguments. But we confirmed that it could be a breaking change in the rare case where the Exec function is assigned to a variable.
// The original Exec function works here because its type is func(context.Context, []string),
// but the new Exec function’s type is func(context.Context, []string, ...ProcessOption),
// so the assignment fails at compile time. For that reason we are moving it to this section.
var execFn func(ctx context.Context, cmd []string) = myContainer.Exec
🚀 Features
-
feat: implement new MultiStrategy design (#580) @hhsnopek
This PR enhances how the
wait.ForAll
strategy behaves: it will control the startup timeout and the deadline for all inner wait strategies, using two methods:WithStartupTimeoutDefault
, which sets the default timeout for all inner wait strategies; andWithDeadline
, which sets a time.Duration which limits all wait strategies. As a consequence, the already existing functionWithStartupTimeout
has been deprecated from the multi-strategy struct. -
feat: Auth config for build images (#602) @paulozenida
-
feat: log docker info from compose (#591) @mdelapenya
🐛 Bug Fixes
- fix: support parallel execution of reusable containers (#593) @mdelapenya
📖 Documentation
- README: update
nginxC.Terminate
(#627) @ofey404 - update gotest.md - fix errors in the example (#623) @pantafive
- docs: fix syntax (#615) @mdelapenya
- docs: networking basics (#612) @mdelapenya
- docs: wording in project name (#610) @mdelapenya
- add example of using Pulsar with testcontainers-go (#597) @clive-jevons
- docs: add languages to docs site (#599) @mdelapenya
- docs: Rename the MkDocs site name to match other Testcontainers languages (#598) @HofmeisterAn
- chore: sync governance files (#589) @mdelapenya
- chore: sync governance files (#586) @mdelapenya
🧹 Housekeeping
- chore: sync governance files (#622) @testcontainersbot
- chore: use a fixed version of MySQL (#617) @mdelapenya
- feat: add golangci-lint (#569) @hhsnopek
- chore: sync governance files (#608) @mdelapenya
- chore: sync governance files (#586) @mdelapenya
- Remove codecov and test coverage file (#584) @misantron
📦 Dependency updates
- chore: retire podman pipeline (#625) @mdelapenya
- chore(deps): bump github.com/docker/compose/v2 from 2.12.0 to 2.12.2 (#588) @dependabot
- feat: bump version of test-summary (#596) @Bablzz
v0.15.0
What's Changed
🚀 Features
- feat: add sessionID HTTP Header to the Docker client setup (#570) @mdelapenya
- chore: proper messaging on disabling ryuk (#566) @mdelapenya
- Support returning all IP addresses of a container (#553) @gauravgahlot
- Support for cap-add/cap-drop (#555) @dhuckins
- Log docker server info (#548) @gauravgahlot
⚠️ Breaking Changes
- feat: add host param to url function for wait.ForSQL (#524) @frozenbonito
Before this change, when waiting for a SQL to be executed in a container it always checked against localhost
, but it could be the case that the database instance runs in a different container. For that reason, the library now supports passing the host where the database is running so that the wait.ForSQL
function needs the host as part of the input parameters.
- func ForSQL(port nat.Port, driver string, url func(nat.Port) string) *waitForSql {
+ func ForSQL(port nat.Port, driver string, url func(host string, port nat.Port) string) *waitForSql {
🐛 Bug Fixes
- fix: check if the container request is for the reaper (#574) @mdelapenya
- fix: pass docker context key when reusing a container (#550) @mdelapenya
- fix: use regex to find container by name (#558) @hwwwi
- fix: expose default exposed ports if the NetworkMode is not container (#560) @clive-jevons
- fix(compose): wait.ForExit() strategy should work for finished containers (#514) @Malinskiy
📖 Documentation
- fix: edit link in documentation (#575) @DanielHabenicht
- chore: proper messaging on disabling ryuk (#566) @mdelapenya
- docs: add general Docker requirements (#565) @mdelapenya
- Add system requirements parent docs page for podman and colima (#562) @gauravgahlot
- docs: add docs regarding Colima usage (#547) @hhsnopek
- chore: add CONTRIBUTING file (#539) @mdelapenya
- docs: add a basic layout for wait strategies in docs (#536) @mdelapenya
- docs: improve consistency and fix typos (#534) @sicoyle
🧹 Housekeeping
- chore: prepare for 0.15.0 release (#581) @mdelapenya
- fix: better error message in tests (#577) @mdelapenya
- chore: check error message in parts when testing the CreateContainerWithDirs method (#576) @mdelapenya
- chore: use container.State() function in tests (#543) @mdelapenya
- chore: add emoji to breaking changes in release drafter (#542) @mdelapenya
- issue #537 Rename the wait/multi.go file to wait/all.go (#541) @skofli
- chore: do not skip test (#528) @mdelapenya
- chore: include test flakiness in the release drafter (#535) @mdelapenya
- chore: retire old versions of Go (#530) @mdelapenya
- chore: improve issue templates (#523) @mdelapenya
📦 Dependency updates
- chore(deps): bump gotest.tools/v3 from 3.3.0 to 3.4.0 (#563) @dependabot
- Update testcontainers/ryuk version to 0.3.4 (#564) @eddumelendez
- chore: use hashed versions of test-summary action (#556) @mdelapenya
- chore: retire old versions of Go (#530) @mdelapenya
- chore: pin codecov's GH action to v3.1.0 (#526) @mdelapenya
v0.14.0
What's Changed
🚀 Features
- feat: copy directory to container (#517) @mdelapenya
- feat: Use exposed ports specified in image if it is not specified in ContainerRequest (#468) @fiftin
- Issue 439: use an existing container (#464) @VladimirStepanov
- Issue 225 copy files before container started (#460) @VladimirStepanov
- refactor: read RYUK_CONTAINER_PRIVILEGED once (#475) @zregvart
- feature: custom ForSQL query (#451) @funvit
- Issue 332 generic parallel containers (#456) @VladimirStepanov
- Improve Podman compatibility (#414) @baez90
- Add SHM size to the container request (#461) @EndPositive
- feat: support binds in addition to mounts (#452) @zregvart
- feat: add IPAM configs to
NetworkRequest
(#394) @aivinog1 - use var TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE (#407) @mniak
- Docker compose: Add the output of the command to the returning struct (#420) @oriser
- Add extra hosts to the container request (#436) @EndPositive
⚠️ Breaking Changes
- feat: ability to configure running privileged Ryuk (#449) @zregvart
- Return a Reader from the Exec function (#435) @johanoskarsson
🐛 Bug Fixes
- Return container IP when attached to a single named network (#491) @leszko
- fix: return bad error after parallel running (#483) @VladimirStepanov
- fix: strip stream headers from logs (#454) @funvit
- Fix compose v2 wait strategy (#426) @oriser
📖 Documentation
- docs: add contributing guides (#522) @mdelapenya
- docs: add docs regarding Podman usage (#503) @baez90
- docs: fix format for create-container feature (#481) @mdelapenya
- Remove unused import in redis example (#471) @doodot
- docs: add telegraf to users of testcontainers-go (#447) @powersj
- chore: update branding (#429) @mdelapenya
🧹 Housekeeping
- Add CODEOWNERS (#507) @eddumelendez
- Remove bug_report.md and add slack/discusions to config.yml (#506) @eddumelendez
- chore: add issue templates (#501) @mdelapenya
- chore: retire non-supported Go versions (#493) @mdelapenya
- chore: display test summary on GH actions (#473) @mdelapenya
- refactor: more nuanced env vs properties config (#479) @zregvart
- chore(ci): update podman pipeline (#478) @mdelapenya
- add missing test for checking status code matcher (#469) @VladimirStepanov
- check that environment is clean (#458) @VladimirStepanov
- fix: temp fix of flaky test (#455) @funvit
- Negotiate client version for docker compose (#432) @rahul-muttineni-okcupid
- chore: update configs for mkdocs (#434) @mdelapenya
📦 Dependency updates
- chore(deps): bump github.com/docker/go-units from 0.4.0 to 0.5.0 (#515) @dependabot
- chore(deps): bump github.com/lib/pq from 1.10.6 to 1.10.7 in /e2e (#518) @dependabot
- Update go-redis to v8.11.5 (#424) @johanoskarsson
- chore(deps): bump gotest.tools/gotestsum from 1.7.0 to 1.8.2 (#499) @dependabot
- chore(deps): bump github.com/containerd/containerd from 1.6.7 to 1.6.8 (#495) @dependabot
- chore(deps): bump gotest.tools/gotestsum from 1.8.1 to 1.8.2 in /e2e (#498) @dependabot
- chore(deps): bump github.com/containerd/containerd from 1.6.6 to 1.6.7 (#494) @dependabot
- chore(deps): bump github.com/containerd/containerd from 1.5.9 to 1.6.6 (#444) @dependabot
- chore: retire non-supported Go versions (#493) @mdelapenya
- chore(deps): bump github.com/stretchr/testify from 1.7.2 to 1.8.0 (#487) @dependabot
- chore(deps): bump gotest.tools/v3 from 3.2.0 to 3.3.0 (#486) @dependabot
- chore(deps): bump github.com/cenkalti/backoff/v4 from 4.1.2 to 4.1.3 (#480) @dependabot
- feat(deps): update dependencies to resolve dependabot security alerts (#484) @purpleclay
- feat: update 3d party packages (#467) @VladimirStepanov
- chore(deps): bump gotest.tools/gotestsum from 1.7.0 to 1.8.1 in /e2e (#477) @dependabot
- chore: tell dependabot about the new module (#474) @mdelapenya
- chore(deps): bump github.com/magiconair/properties from 1.8.5 to 1.8.6 (#448) @dependabot
- chore(deps): bump gotest.tools/v3 from 3.0.3 to 3.2.0 (#431) @dependabot
- chore(deps): bump containerd version to v1.5.13 (#446) @vinijabes