Releases: docker/docker-py
Releases · docker/docker-py
7.1.0
Upgrade Notes
- Bumped minimum engine API version to 1.24
- Bumped default engine API version to 1.44 (Moby 25.0)
Bugfixes
- Fixed issue with tag parsing when the registry address includes ports that resulted in
invalid tag format
errors - Fixed issue preventing creating new configs (
ConfigCollection
), which failed with aKeyError
due to thename
field - Fixed an issue due to an update in the requests package breaking
docker-py
by applying the suggested fix
Miscellaneous
- Documentation improvements
- Updated Ruff (linter) and fixed minor linting issues
- Packaging/CI updates
- Started using hatch for packaging (https://github.com/pypa/hatch)
- Updated
setup-python
github action
- Updated tests
- Stopped checking for deprecated container and image related fields (
Container
andContainerConfig
) - Updated tests that check
NetworkSettings.Networks.<network>.Aliases
due to engine changes
- Stopped checking for deprecated container and image related fields (
What's Changed
- Bump default API version to 1.43 (Moby 24.0) by @vvoland in #3199
- integration/commit: Don't check for deprecated fields by @vvoland in #3203
- fix: tag regex should allow ports by @artificial-intelligence in #3196
- utils: Fix datetime_to_timestamp by @vvoland in #3208
- fix: keyerror when creating new config(#3110) by @Khushiyant in #3200
- Update Ruff, fix some minor issues by @akx in #3206
- docs: change image.history() return type to list (#3076) by @Khushiyant in #3202
- lint: fix string formatting by @milas in #3211
- Drop
packaging
dependency by @akx in #3205 - Bump default API version to 1.44 (Moby 25.0) by @vvoland in #3231
- Modernize build to use
hatchling
andhatch-vcs
by @akx in #3207 - Enable Ruff I (import sort), autofix by @akx in #3212
- chore(ci): fix-ups across Make / Docker / GitHub Actions by @milas in #3241
- chore: fix return type docs for
container.logs()
by @BobDu in #2240 - CI fix by @krissetto in #3260
- Fix for requests 2.32 by @felixfontein in #3257
- Added 7.1.0 changelog by @krissetto in #3262
- Fix env var name in release pipeline by @krissetto in #3263
- Change env var name in release pipeline to match hatch expectations by @krissetto in #3264
New Contributors
- @vvoland made their first contribution in #3199
- @artificial-intelligence made their first contribution in #3196
- @Khushiyant made their first contribution in #3200
- @BobDu made their first contribution in #2240
- @krissetto made their first contribution in #3260
Full Changelog: 7.0.0...7.1.0
7.0.0
Upgrade Notes (from 6.x) ⚠️
- Removed SSL version (
ssl_version
) and explicit hostname check (assert_hostname
) options (#3185)assert_hostname
has not been used since Python 3.6 and was removed in 3.12- Python 3.7+ supports TLSv1.3 by default
- Websocket support is no longer included by default (#3123)
- Use
pip install docker[websockets]
to includewebsocket-client
dependency - By default,
docker-py
hijacks the TCP connection and does not use Websockets - Websocket client is only required to use
attach_socket(container, ws=True)
- Use
- Python 3.7 no longer supported (reached end-of-life June 2023) (#3187)
Features ✨
- Python 3.12 support (#3185)
- Full
networking_config
support forcontainers.create()
(#3121)- Replaces
network_driver_opt
(added in 6.1.0)
- Replaces
- Add
health()
property to container that returns status (e.g.unhealthy
) (#3147) - Add
pause
option tocontainer.commit()
(#3159) - Add support for bind mount propagation (e.g.
rshared
,private
) (#3164) - Add support for
filters
,keep_storage
, andall
inprune_builds()
on API v1.39+ (#3192)
Bugfixes 🐛
- Consistently return
docker.errors.NotFound
on 404 responses (#3156) - Validate tag format before push (#3191)
Miscellaneous 🔧
- Upgraded urllib3 version in
requirements.txt
(used for development/tests) (#3183) - Documentation typo fixes & formatting improvements (#3130)
- Fixed integration test compatibility for newer Moby engine versions (#3165, #3166, #3145, #3169, #3170)
- Switch to ruff for linting (#3126)
What's Changed
- fix user_guides/multiplex.rst by @Longin-Yu in #3130
- tests/integration: fix flake8 failures (E721 do not compare types), and fix Dockerfile for debian "bookworm" by @thaJeztah in #3166
- tests/integration: update some tests for updated error-messages by @thaJeztah in #3165
- README: fix link for CI status badge by @thaJeztah in #3167
- fix: use response.text to get string rather than bytes by @mndeveci in #3156
- feat: add pause option to commit api by @VincentLeeMax in #3159
- build(deps): Bump requests from 2.28.1 to 2.31.0 by @dependabot in #3136
- test: remove APT_MIRROR from Dockerfile by @thaJeztah in #3145
- Switch linting to ruff, use f-strings, fix lint errors and possible bugs by @akx in #3126
- integration: Fix bad subnet declaration by @akerouanton in #3169
- integration: Remove test_create_check_duplicate by @akerouanton in #3170
- Support all
Network.connect
parameters inclient.containers.run
andclient.containers.create
by @Skazza94 in #3121 - feat: move websocket-client to extra dependency by @akx in #3123
- Add health property to Containers model by @TurnrDev in #3147
- build(deps): Bump urllib3 from 1.26.11 to 1.26.18 by @dependabot in #3183
- breaking: Python 3.12 compatibility & remove custom SSL adapter by @milas in #3185
- chore: add changelog for 7.0.0 by @milas in #3186
- chore: remove support for Python 3.7 by @milas in #3187
- chore: update MAINTAINERS and remove CODEOWNERS by @milas in #3188
- chore: fix missing setuptools in CI by @milas in #3189
- Fix #3153 - Validate tag before build using OCI regex by @LombardiDaniel in #3191
- feat: accept filters and keep_storage in prune_builds by @emranbm in #3192
- chore: update changelog and maintainer by @milas in #3193
New Contributors
- @Longin-Yu made their first contribution in #3130
- @mndeveci made their first contribution in #3156
- @VincentLeeMax made their first contribution in #3159
- @akerouanton made their first contribution in #3169
- @TurnrDev made their first contribution in #3147
- @LombardiDaniel made their first contribution in #3191
- @emranbm made their first contribution in #3192
Full Changelog: 6.1.3...7.0.0
7.0.0b3
ℹ️ See 7.0.0b2 for full release notes
Upgrade Notes (from 6.x) ⚠️
- Removed SSL version (
ssl_version
) and explicit hostname check (assert_hostname
) options (#3185)assert_hostname
has not been used since Python 3.6 and was removed in 3.12- Python 3.7+ supports TLSv1.3 by default
- Websocket support is no longer included by default (#3123)
- Use
pip install docker[websockets]
to includewebsocket-client
dependency - By default,
docker-py
hijacks the TCP connection and does not use Websockets - Websocket client is only required to use
attach_socket(container, ws=True)
- Use
- Python 3.7 no longer supported (reached end-of-life June 2023) (#3187)
Features ✨
- Add support for
filters
,keep_storage
, andall
inprune_builds()
on API v1.39+ (#3192)
Bugfixes 🐛
- Validate tag format before push (#3191)
Full Changelog
- Fix #3153 - Validate tag before build using OCI regex by @LombardiDaniel in #3191
- feat: accept filters and keep_storage in prune_builds by @emranbm in #3192
Commit Log: 7.0.0b2...7.0.0b3
New Contributors
- @LombardiDaniel made their first contribution in #3191
- @emranbm made their first contribution in #3192
7.0.0b2
ℹ️ This is identical to 7.0.0b1
, which was not correctly released due to a CI pipeline issue.
Upgrade Notes ⚠️
- Removed SSL version (
ssl_version
) and explicit hostname check (assert_hostname
) options (#3185)assert_hostname
has not been used since Python 3.6 and was removed in 3.12- Python 3.7+ supports TLSv1.3 by default
- Websocket support is no longer included by default (#3123)
- Use
pip install docker[websockets]
to includewebsocket-client
dependency - By default,
docker-py
hijacks the TCP connection and does not use Websockets - Websocket client is only required to use
attach_socket(container, ws=True)
- Use
- Python 3.7 no longer supported (reached end-of-life June 2023) (#3187)
Features ✨
- Python 3.12 support (#3185)
- Full
networking_config
support forcontainers.create()
(#3121)- Replaces
network_driver_opt
(added in 6.1.0)
- Replaces
- Add
health()
property to container that returns status (e.g.unhealthy
) (#3147) - Add
pause
option tocontainer.commit()
(#3159) - Add support for bind mount propagation (e.g.
rshared
,private
) (#3164)
Bugfixes 🐛
- Consistently return
docker.errors.NotFound
on 404 responses (#3156)
Miscellaneous 🔧
- Upgraded urllib3 version in
requirements.txt
(used for development/tests) (#3183) - Documentation typo fixes & formatting improvements (#3130)
- Fixed integration test compatibility for newer Moby engine versions (#3165, #3166, #3145, #3169, #3170)
- Switch to ruff for linting (#3126)
Full Changelog
- fix user_guides/multiplex.rst by @Longin-Yu in #3130
- tests/integration: fix flake8 failures (E721 do not compare types), and fix Dockerfile for debian "bookworm" by @thaJeztah in #3166
- tests/integration: update some tests for updated error-messages by @thaJeztah in #3165
- README: fix link for CI status badge by @thaJeztah in #3167
- fix: use response.text to get string rather than bytes by @mndeveci in #3156
- feat: add pause option to commit api by @VincentLeeMax in #3159
- build(deps): Bump requests from 2.28.1 to 2.31.0 by @dependabot in #3136
- test: remove APT_MIRROR from Dockerfile by @thaJeztah in #3145
- Switch linting to ruff, use f-strings, fix lint errors and possible bugs by @akx in #3126
- integration: Fix bad subnet declaration by @akerouanton in #3169
- integration: Remove test_create_check_duplicate by @akerouanton in #3170
- Support all
Network.connect
parameters inclient.containers.run
andclient.containers.create
by @Skazza94 in #3121 - feat: move websocket-client to extra dependency by @akx in #3123
- Add health property to Containers model by @TurnrDev in #3147
- build(deps): Bump urllib3 from 1.26.11 to 1.26.18 by @dependabot in #3183
- breaking: Python 3.12 compatibility & remove custom SSL adapter by @milas in #3185
- chore: add changelog for 7.0.0 by @milas in #3186
- chore: remove support for Python 3.7 by @milas in #3187
- chore: update MAINTAINERS and remove CODEOWNERS by @milas in #3188
New Contributors
- @Longin-Yu made their first contribution in #3130
- @mndeveci made their first contribution in #3156
- @VincentLeeMax made their first contribution in #3159
- @akerouanton made their first contribution in #3169
- @TurnrDev made their first contribution in #3147
Full Changelog: 6.1.3...7.0.0b2
7.0.0b1
Upgrade Notes ⚠️
- Removed SSL version (
ssl_version
) and explicit hostname check (assert_hostname
) options (#3185)assert_hostname
has not been used since Python 3.6 and was removed in 3.12- Python 3.7+ supports TLSv1.3 by default
- Websocket support is no longer included by default (#3123)
- Use
pip install docker[websockets]
to includewebsocket-client
dependency - By default,
docker-py
hijacks the TCP connection and does not use Websockets - Websocket client is only required to use
attach_socket(container, ws=True)
- Use
- Python 3.7 no longer supported (reached end-of-life June 2023) (#3187)
Features ✨
- Python 3.12 support (#3185)
- Full
networking_config
support forcontainers.create()
(#3121)- Replaces
network_driver_opt
(added in 6.1.0)
- Replaces
- Add
health()
property to container that returns status (e.g.unhealthy
) (#3147) - Add
pause
option tocontainer.commit()
(#3159) - Add support for bind mount propagation (e.g.
rshared
,private
) (#3164)
Bugfixes 🐛
- Consistently return
docker.errors.NotFound
on 404 responses (#3156)
Miscellaneous 🔧
- Upgraded urllib3 version in
requirements.txt
(used for development/tests) (#3183) - Documentation typo fixes & formatting improvements (#3130)
- Fixed integration test compatibility for newer Moby engine versions (#3165, #3166, #3145, #3169, #3170)
- Switch to ruff for linting (#3126)
Full Changelog
- fix user_guides/multiplex.rst by @Longin-Yu in #3130
- tests/integration: fix flake8 failures (E721 do not compare types), and fix Dockerfile for debian "bookworm" by @thaJeztah in #3166
- tests/integration: update some tests for updated error-messages by @thaJeztah in #3165
- README: fix link for CI status badge by @thaJeztah in #3167
- fix: use response.text to get string rather than bytes by @mndeveci in #3156
- feat: add pause option to commit api by @VincentLeeMax in #3159
- build(deps): Bump requests from 2.28.1 to 2.31.0 by @dependabot in #3136
- test: remove APT_MIRROR from Dockerfile by @thaJeztah in #3145
- Switch linting to ruff, use f-strings, fix lint errors and possible bugs by @akx in #3126
- integration: Fix bad subnet declaration by @akerouanton in #3169
- integration: Remove test_create_check_duplicate by @akerouanton in #3170
- Support all
Network.connect
parameters inclient.containers.run
andclient.containers.create
by @Skazza94 in #3121 - feat: move websocket-client to extra dependency by @akx in #3123
- Add health property to Containers model by @TurnrDev in #3147
- build(deps): Bump urllib3 from 1.26.11 to 1.26.18 by @dependabot in #3183
- breaking: Python 3.12 compatibility & remove custom SSL adapter by @milas in #3185
- chore: add changelog for 7.0.0 by @milas in #3186
- chore: remove support for Python 3.7 by @milas in #3187
- chore: update MAINTAINERS and remove CODEOWNERS by @milas in #3188
New Contributors
- @Longin-Yu made their first contribution in #3130
- @mndeveci made their first contribution in #3156
- @VincentLeeMax made their first contribution in #3159
- @akerouanton made their first contribution in #3169
- @TurnrDev made their first contribution in #3147
Full Changelog: 6.1.3...7.0.0b1
6.1.3
6.1.2
🐛 Bugfixes
Full Changelog
- Use windows api to honour timeouts (fixes #3111) by @ImogenBits in #3112
- Avoid socket timeouts when executing commands by @loicleyendecker in #3125
- docs: update changelog by @milas in #3127
New Contributors
- @ImogenBits made their first contribution in #3112
Full Changelog: 6.1.1...6.1.2
6.1.1
ℹ️ Upgrade Notes (6.1.x)
- Errors are no longer returned during client initialization if the credential helper cannot be found. A warning will be emitted instead, and an error is returned if the credential helper is used.
🐛 Bugfixes
- Fix
containers.stats()
hanging withstream=True
- Correct return type in docs for
containers.diff()
method
What's Changed
- api: update return type of
diff
method by @john-b-yang in #3115 - Fix container.stats infinite blocking on stream mode by @RazCrimson in #3120
New Contributors
- @john-b-yang made their first contribution in #3115
- @RazCrimson made their first contribution in #3120
Full Changelog: 6.1.0...6.1.1
6.1.0
ℹ️ Upgrade Notes
- Errors are no longer returned during client initialization if the credential helper cannot be found. A warning will be emitted instead, and an error is returned if the credential helper is used.
✨ Features
- Python 3.11 support
- Use
poll()
instead ofselect()
on non-Windows platforms - New API fields
network_driver_opt
on container run / createone-shot
on container statsstatus
on services list
🐛 Bugfixes
- Support for requests 2.29.0+ and urllib3 2.x
- Do not strip characters from volume names
- Fix connection leak on
container.exec_*
operations - Fix errors closing named pipes on Windows
What's Changed
- Add support for Python 3.11 by @hugovk in #3064
- Avoid stripping characters in volume names by @loicleyendecker in #3073
- docs: fix wrong command syntax in code annotation by @serieznyi in #3081
- build(deps): Bump setuptools from 63.2.0 to 65.5.1 by @dependabot in #3082
- fix(store): warn on init instead of throw by @nomagick in #3080
- exec: fix file handle leak with container.exec_* APIs by @Lekensteyn in #2320
- Add
network_driver_opt
to client.containers run and create by @Skazza94 in #3083 - Add
one-shot
to container APIstats
by @aroxby-wayscript in #3089 - Add
status
parameter to services list API by @lorinbucher in #3093 - socket: fix for errors on pipe close in Windows by @milas in #3099
- put_archive: note the data may also be a stream by @akx in #2478
- Use poll() instead of select(), unless Windows. by @I-question-this in #2865
- Make compatible with requests 2.29.0 and urllib3 2.0 by @felixfontein in #3116
New Contributors
- @loicleyendecker made their first contribution in #3073
- @serieznyi made their first contribution in #3081
- @nomagick made their first contribution in #3080
- @Lekensteyn made their first contribution in #2320
- @aroxby-wayscript made their first contribution in #3089
- @lorinbucher made their first contribution in #3093
- @akx made their first contribution in #2478
- @I-question-this made their first contribution in #2865
Full Changelog: 6.0.1...6.1.0
6.0.1
⚠️ Notice
This version is not compatible with requests
2.29+ or urllib3
2.x.
Either add requests < 2.29
and urllib3 < 2
to your requirements or upgrade to to the latest docker-py
release.
🐛 Bugfixes
- Fix for
The pipe has been ended
errors on Windows (#3056) - Support floats for timestamps in Docker logs (
since
/until
) (#3031)
What's Changed
- docs: install package in ReadTheDocs build by @milas in #3032
- Use latest stable syntax for Dockerfiles by @thaJeztah in #3035
- feat: add support for floats to docker logs params since / until sinc… by @ArchiMoebius in #3031
- Change prune test to use anonymous volumes by @cpuguy83 in #3051
- socket: handle npipe close by @nicks in #3056
New Contributors
- @ArchiMoebius made their first contribution in #3031
- @nicks made their first contribution in #3056
Full Changelog: 6.0.0...6.0.1