What's Changed
⚠️ Breaking Changes
The
container.Terminate(ctx)
method now accepts an extra variadic argument with termination options. The breaking change only affects users assigning this method to a variable, receiving a compile-time error. The rest of the users will simply satisfy the new signature with an empty slice of termination options.
The
ShouldPrintBuildLog
function of theContainerRequest
has been removed. Instead, aBuildLogWriter
function appears, that returns the user-definedio.Writer
for writing the image-build logs. In case there is no writer, and theFromDockerfile.PrintBuildLog
is set to true,os.Stderr
would be used.
Users of the GCloud module and the
WithProjectID
option must handle the error that this option now returns. This can be get at compile time, as all the functional options for container customisers must return an error.
The types and functions of the
PortForwarder
type are now private, as they are implementation details of the library, so there is no need for them to be exposed.
Usages of the
GenericProviderOptions.DefaultNetwork
field must be removed, as this field is now private. The container runtime should provide the default network under the hood.
🔒 Security
- security(deps): bump golang.org/x/crypto from 0.28.0 to 0.31.0 (#2916) @dependabot
🚀 Features
- feat(postgres): ssl for postgres (#2473) @bearrito
- feat(ollama): support calling the Ollama local process (#2923) @stevenh
- feat(termination)!: make container termination timeout configurable (#2926) @moogacs
- feat(wait): log sub match callback (#2929) @stevenh
- feat!: build log writer for container request (#2925) @zenkovev
- feat(gcloud)!: add support to seed data when using RunBigQueryContainer (#2523) @mtellis2
- feat(nats): WithConfigFile - pass a configuration file to nats server (#2905) @vyskocilm
- feat(wait): strategy walk (#2895) @stevenh
- feat(wait): tls strategy (#2896) @stevenh
- feat: add build to life cycle hooks (#2653) @stevenh
🐛 Bug Fixes
- fix: handle nil value in CleanupNetwork (#2928) @l0nax
- fix: avoid double lock in DockerProvider.DaemonHost() (#2900) @vikstrous
- fix: container binds syntax (#2899) @zregvart
- fix(influxdb): Respect custom waitStrategy (#2845) @marcinmilewski93
- fix(redpanda): temporary file use (#2884) @cavus700
- fix: host access port instability (#2867) @stevenh
- fix: docker auth for identity tokens (#2866) @stevenh
- fix(compose): container initialisation (#2844) @stevenh
- fix!: data races (#2843) @stevenh
- fix: mongodb replicaset should work with auth (#2847) @abhipranay
- fix: simplify fully-qualified image names (#2846) @mdelapenya
- fix(compose): race condition (#2842) @stevenh
📖 Documentation
- docs: better contribution guidelines (#2893) @mdelapenya
- docs: fix new lifecycle hooks section (#2875) @mdelapenya
- docs(mysql|neo4j): remove default image codeblock (#2860) @mdelapenya
🧹 Housekeeping
- chore(deps): bump jinja2 from 3.1.4 to 3.1.5 (#2935) @dependabot
- chore(deps): bump sonarsource/sonarcloud-github-action from 2.1.1 to 4.0.0 (#2933) @dependabot
- chore(deps): bump slackapi/slack-github-action from 1.26.0 to 2.0.0 (#2934) @dependabot
- chore(deps): bump github/codeql-action from 3.25.15 to 3.28.0 (#2932) @dependabot
- chore(ci): add Github labels based on PR title (#2914) @mdelapenya
- chore(gha): use official docker/setup-docker-action (#2913) @vvoland
- chore(ci): enforce conventional commits syntax in PR titles (#2911) @mdelapenya
- chore: enable implicit default logger only in testing with -v (#2877) @apstndb
- refactor(cockroachdb): to use request driven options (#2883) @stevenh
- fix: only upload to sonar on ubuntu-latest (#2891) @mdelapenya
- fix: build artifact name properly (#2890) @mdelapenya
- fix: do not run sonar upload when ryuk is disabled (#2889) @mdelapenya
- feat(ci): Enable master moby with rootless (#2880) @vvoland
- chore: resolve AWS deprecations for localstack (#2879) @mdelapenya
- fix: typo in containerd integration (#2873) @mdelapenya
- chore: use testify instead of t.Error (#2871) @mmorel-35
- golangci-lint: enable perfsprint linter (#2872) @mmorel-35
- fix: reuse testcontainers.RequireContainerExec (#2870) @mmorel-35
- feat(ci): Test against the nightly master moby (#2861) @vvoland
- chore: use require instead of t.Fatal (part 2) (#2857) @mmorel-35
- chore: remove unused lint directives (#2864) @stevenh
- fix: log test data race (#2863) @stevenh
- chore(rabbitmq): refactor assertEntity in tests (#2856) @mmorel-35
- chore: use require instead of t.Fatal (#2855) @mmorel-35
- chore: use require.Len instead of assert.Len (#2854) @mmorel-35
- chore: enable usestdlibvars linter (#2850) @mmorel-35
- chore: use require.(No)Error(t,err) instead of t.Fatal(err) (#2851) @mmorel-35
📦 Dependency updates
- chore(deps): bump jinja2 from 3.1.4 to 3.1.5 (#2935) @dependabot
- chore(deps): bump sonarsource/sonarcloud-github-action from 2.1.1 to 4.0.0 (#2933) @dependabot
- chore(deps): bump slackapi/slack-github-action from 1.26.0 to 2.0.0 (#2934) @dependabot
- chore(deps): bump github/codeql-action from 3.25.15 to 3.28.0 (#2932) @dependabot
- security(deps): bump golang.org/x/crypto from 0.28.0 to 0.31.0 (#2916) @dependabot
- chore(deps): bump actions/setup-go from 5.0.0 to 5.1.0 (#2904) @dependabot
- chore(deps): bump ossf/scorecard-action from 2.3.1 to 2.4.0 (#2903) @dependabot
- chore(deps): bump test-summary/action from 2.3 to 2.4 (#2902) @dependabot
- fix: update GH actions for uploading/downloading artifacts (#2888) @mdelapenya
- feat(ci): Enable master moby with rootless (#2880) @vvoland
- chore(deps): bump actions/download-artifact from 3.0.2 to 4.1.8 (#2676) @dependabot
- chore(deps): bump actions/upload-artifact from 3.1.3 to 4.4.3 (#2885) @dependabot
- chore(deps): bump mkdocs-include-markdown-plugin from 6.0.4 to 6.2.2 (#2806) @dependabot
- chore(deps): bump mkdocs-markdownextradata-plugin from 0.2.5 to 0.2.6 (#2807) @dependabot
- chore(deps): bump golangci/golangci-lint-action from 6.1.0 to 6.1.1 (#2868) @dependabot
- chore: bump ryuk to 0.11.0 (#2853) @mdelapenya