[GH-ISSUE #586] Issue: Unable to build latest act due to docker daemon API version 1.41 #390

Closed
opened 2026-03-01 21:42:56 +03:00 by kerem · 3 comments
Owner

Originally created by @jaypipes on GitHub (Mar 29, 2021).
Original GitHub issue: https://github.com/nektos/act/issues/586

Act version

af5140f13e25a304cba8d3ac8646342440fc2ad6 commit, also tested with v0.2.20 (see notes below).

Docker version:

[jaypipes@thelio act]$ docker version
Client:
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.15.1
 Git commit:        4484c46
 Built:             Fri Oct  2 19:31:30 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          19.03.13
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.15.1
  Git commit:       4484c46
  Built:            Fri Oct  2 00:00:00 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.4
  GitCommit:        
 runc:
  Version:          1.0.0-rc92+dev
  GitCommit:        c9a9ce0286785bef3f3c3c87cd1232e535a03e15
 docker-init:
  Version:          0.18.0
  GitCommit:        

Expected behaviour

Be able to build with docker daemon 1.40 and earlier by switching off container image platform discovery on versions that don't support it.

Actual behaviour

I git clone'd the act repo at commit af5140f13e25a304cba8d3ac8646342440fc2ad6 and ran go run main.go:

[jaypipes@thelio act]$ go run main.go
<snip go mod downloads...>
[Test what expressions result in true and false on Github/test-ifs-and-buts] 🚀  Start image=catthehacker/ubuntu:act-latest
[push/Test                                                                 ] 🚀  Start image=catthehacker/ubuntu:act-latest
[push/Lint                                                                 ] 🚀  Start image=catthehacker/ubuntu:act-latest
[Test how expressions are handled on Github/test-espressions               ] 🚀  Start image=catthehacker/ubuntu:act-latest
Error: "specify container image platform" requires API version 1.41, but the Docker daemon API version is 1.40

Note: If you run make test it will just hang forever with no output until you Ctrl-C to stop it, and then you'll note a bunch of errors like this:

   --- FAIL: TestRunEvent/runs-on#01 (0.11s)
        runner_test.go:66: assertion failed: error is not nil: "specify container image platform" requires API version 1.41, but the Docker daemon API version is 1.40: /home/jaypipes/go/src/github.com/nektos/act/pkg/runner/testdata/runs-on

I noticed that a recent commit updated the docker dependency from v17.12.0-ce-rc1.0.20200618181300-9dc6525e6118+incompatible to v20.10.3+incompatible and so figured I would check out the latest release tag (v0.2.20) and re-ran go run main.go which got me past the "specify container image platform requires API version 1.41" error.

If act is going to depend on really modern versions of Docker, I think that should be listed in the README as a dependency, otherwise consider adding features like container image platform discovery behind some "check and see if my docker daemon supports this yet"-type conditionals?

If you are OK with the latter conditional checks being added to act, I can submit some code for that.

Best,
-jay

Originally created by @jaypipes on GitHub (Mar 29, 2021). Original GitHub issue: https://github.com/nektos/act/issues/586 <!-- - Make sure you are able to reproduce it on the [latest version](https://github.com/nektos/act/releases) - Search the existing issues. - Refer to [README](https://github.com/nektos/act/blob/master/README.md). --> ## Act version `af5140f13e25a304cba8d3ac8646342440fc2ad6` commit, also tested with `v0.2.20` (see notes below). Docker version: ``` [jaypipes@thelio act]$ docker version Client: Version: 19.03.13 API version: 1.40 Go version: go1.15.1 Git commit: 4484c46 Built: Fri Oct 2 19:31:30 2020 OS/Arch: linux/amd64 Experimental: false Server: Engine: Version: 19.03.13 API version: 1.40 (minimum version 1.12) Go version: go1.15.1 Git commit: 4484c46 Built: Fri Oct 2 00:00:00 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.4 GitCommit: runc: Version: 1.0.0-rc92+dev GitCommit: c9a9ce0286785bef3f3c3c87cd1232e535a03e15 docker-init: Version: 0.18.0 GitCommit: ``` ## Expected behaviour Be able to build with docker daemon 1.40 and earlier by switching off container image platform discovery on versions that don't support it. ## Actual behaviour I `git clone`'d the act repo at commit `af5140f13e25a304cba8d3ac8646342440fc2ad6` and ran `go run main.go`: ``` [jaypipes@thelio act]$ go run main.go <snip go mod downloads...> [Test what expressions result in true and false on Github/test-ifs-and-buts] 🚀 Start image=catthehacker/ubuntu:act-latest [push/Test ] 🚀 Start image=catthehacker/ubuntu:act-latest [push/Lint ] 🚀 Start image=catthehacker/ubuntu:act-latest [Test how expressions are handled on Github/test-espressions ] 🚀 Start image=catthehacker/ubuntu:act-latest Error: "specify container image platform" requires API version 1.41, but the Docker daemon API version is 1.40 ``` **Note**: If you run `make test` it will just hang forever with no output until you Ctrl-C to stop it, and then you'll note a bunch of errors like this: ``` --- FAIL: TestRunEvent/runs-on#01 (0.11s) runner_test.go:66: assertion failed: error is not nil: "specify container image platform" requires API version 1.41, but the Docker daemon API version is 1.40: /home/jaypipes/go/src/github.com/nektos/act/pkg/runner/testdata/runs-on ``` I noticed that a [recent commit](https://github.com/nektos/act/commit/6c258cf40d77e867eef21ea9fbb731a4110f3900) updated the docker dependency from `v17.12.0-ce-rc1.0.20200618181300-9dc6525e6118+incompatible` to `v20.10.3+incompatible` and so figured I would check out the latest release tag (`v0.2.20`) and re-ran `go run main.go` which got me past the "specify container image platform requires API version 1.41" error. If `act` is going to depend on really modern versions of Docker, I think that should be listed in the README as a dependency, otherwise consider adding features like container image platform discovery behind some "check and see if my docker daemon supports this yet"-type conditionals? If you are OK with the latter conditional checks being added to `act`, I can submit some code for that. Best, -jay
kerem 2026-03-01 21:42:56 +03:00
  • closed this issue
  • added the
    kind/bug
    label
Author
Owner

@catthehacker commented on GitHub (Mar 29, 2021):

Sorry for breaking stuff 😔 supporting older and current Docker API would be definitely best option although I'm not sure if it's possible to do. Feel free to submit PR.

<!-- gh-comment-id:809462940 --> @catthehacker commented on GitHub (Mar 29, 2021): Sorry for breaking stuff 😔 supporting older and current Docker API would be definitely best option although I'm not sure if it's possible to do. Feel free to submit PR.
Author
Owner

@jaypipes commented on GitHub (Mar 29, 2021):

Sorry for breaking stuff pensive supporting older and current Docker API would be definitely best option although I'm not sure if it's possible to do. Feel free to submit PR.

No need to apologize at all! :)

I'll work on a PR and submit shortly.

<!-- gh-comment-id:809466456 --> @jaypipes commented on GitHub (Mar 29, 2021): > Sorry for breaking stuff pensive supporting older and current Docker API would be definitely best option although I'm not sure if it's possible to do. Feel free to submit PR. No need to apologize at all! :) I'll work on a PR and submit shortly.
Author
Owner

@cplee commented on GitHub (Mar 29, 2021):

Thanks for bringing attention to this @jaypipes ... and for offering to help!

<!-- gh-comment-id:809474061 --> @cplee commented on GitHub (Mar 29, 2021): Thanks for bringing attention to this @jaypipes ... and for offering to help!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/act#390
No description provided.