Today deploys stopped working with the following error:
Error: failed to fetch an image or build from source: error building: failed to solve: secret SOME_SECRET not found: not found
I’m deploying via the command line:
fly deploy --build-secret SOME_SECRET=soome_value
fly v0.1.62 darwin/arm64 Commit: b9c009ac92615b06871889db577a13f6c4dbf628-dirty BuildDate: 2023-07-20T00:30:26Z
Any thoughts? Thanks!
I tried running
fly deploy with
--local-only and also fails with the same error (had to update to v0.1.63 because it was failing with another error in v0.1.62)
The secrets handling in my Dockerfile seems to be correct, since running
docker build --secret id=SOME_SECRET,src=secret_file.txt . works.
Sorry for the inconvenience. This would be flyctl’s regression. Let me take a look.
Also it is scary to see
-dirty on your version information. Is it from Homebrew?
Downgrading to v0.1.58 should unblock you.
No problem! Thank you.
Yes, not sure what that means ¯\_(ツ)_/¯ but if it scary to you, I think I should use the flyctl from
EDIT: After a quick look at the flyctl source code, it seems that the source files used to build the binary don’t match the commit… is that expected from a homebrew build? I’m kind of worried now…
For future readers: v0.1.64 fixed this.
Yes. Sorry I didn’t update this thread. I’ve been working on the feature below and v0.1.64 is the version without any known issues (so far
Starting v0.1.64, flyctl uses BuildKit’s native Go client for building container images faster.
BuildKit is Docker’s new image building mechanism. While flyctl has been using BuildKit already, it used BuildKit through Docker Engine’s ImageCreate API which missed one key feature: sending files on demand.
The ImageCreate API is a “push” model. To build a container image, Docker clients need to make a tarball upfront and push that to the server to start building the image. The tarball contains yo…