(NOT MAINTAINED) Build And Testing Environments as Code Tool
Fixed: multiple invocations of Batect could conflict with each other if each was trying to clone the same Git repository at the same time (#1409 - thanks to @or1can for the bug report)
Fixed: mapping the same container port to multiple host ports would result in only the last host port being mapped (#1412 - thanks to @MarwanAwroojXero for the bug report)
New: task exit codes will now be printed in green (for zero exit codes) or red (for non-zero exit codes)
Fixed: a failed Git clone operation for Git repositories used as bundles could leave the clone in an incomplete state for future runs that reference the same bundle, leading to unclear error messages or unexpected behaviour (#1256 - thanks to @isaac-patterson for the bug report)
Fixed: arrow keys, backspace and other interactive functionality did not work when running on Windows hosts (#1392 - thanks to @lbv for the bug report)
New: it is now possible to securely forward SSH keys or an SSH agent to BuildKit image builds (#1128 - thanks to @hpcsc for the suggestion)
This allows you to use SSH from within an image build (eg. to clone Git repositories) without SSH keys being baked into the image itself.
See the documentation for build_ssh
for more information and examples.
New: it is now possible to securely pass secrets to BuildKit image builds
This allows you to use sensitive values while building images without these values being baked into the image itself.
See the documentation for build_secrets
for more information and examples.
Fixed: Batect would fail to start on GitHub-hosted Windows runners on GitHub Actions with an error like "The value 'master-dockerproject-2022-03-26' is not recognised as a valid version."
/tmp
was mounted noexec
(#1340 - thanks to @or1can for the bug report)New: it is now possible to add labels to containers (#1152 - thanks to @pmioulet for the suggestion)
New: it is now possible to mount tmpfs filesystems into containers (#1241 - thanks to @sergiolpf for the suggestion)
read /dev/stdin: file already closed
(thanks to @ineffyble for reporting this offline)Thanks also to @sschuberth for a number of behind-the-scenes improvements to Batect's development setup.
New: Batect now supports Docker contexts, and will automatically use the active context to retrieve Docker daemon connection information.
This means that Batect can now be used with tools like Colima and Rancher Desktop without needing to set the DOCKER_HOST
environment variable.
New: Batect's Docker client has been rebuilt from the ground up, providing improved performance, reliability and parity with the docker
CLI.
The new client is also vastly easier to maintain, and this should make adding new features much easier.
This should have no visible negative impact. If you encounter any problems, please open an issue.
Improved: the wrapper script will now automatically retry in the event of download failures, improving its resilience in the face of transient network issues.
java.lang.NoSuchMethodError: 'java.util.List java.util.stream.Stream.toList()'
when running on Java 15 or earlier.New: checksums for the wrapper scripts will now be published for each release and attached to the GitHub release (see 'assets' below)
These checksums can be used to easily verify the integrity of the wrapper scripts used in your project.
For example, these checksums are used by the new batect-wrapper-validation-action
action, which validates the integrity of the wrapper scripts as part of a GitHub Actions workflow.
Fixed: downloading update information and updated files and uploading telemetry data (if opted-in) would fail if your system connects to the internet via an encryption-terminating proxy that was not trusted by your Java installation.
These features will now work correctly on macOS and Windows provided your operating system certificate settings are configured to trust the proxy's certificate, which matches the behaviour of browsers and other tools.
:warning: If you use macOS, it's recommended you upgrade to one of the following Java versions to fix a security vulnerability related to this functionality:
Changed: Batect will now use BuildKit for image builds by default if the Docker daemon reports that it supports BuildKit (#1156 - thanks to @sschuberth for the issue report)
BuildKit improves the performance of image builds, as well as adding many new features. Not all of BuildKit's features are currently supported by Batect.
Batect's BuildKit support has been in use for many months now and there are no known issues. If you encounter any issues as a result of this change, disable BuildKit by setting the DOCKER_BUILDKIT
environment variable to 0
and report an issue.