Notice that it tries to install “python-is-python3” with apt-get. However that package doesn’t actually exist. I changed it to install “python3” instead to workaround.
2. Autogenerated fly.toml uses inconsistent port numbers internally
Below is the Dockerfile that “fly.toml” autogenerates when building a Node app:
// How to install python (switched from buster to bullseye)
get python() {
return parseInt(this.nodeVersion.split('.')[0]) > 16 ? 'python-is-python3' : 'python'
}
You should only be seeing “python-is-python3” for Node > 16. Looking at your dockerfile, it appears that you are using Node 16.16.
What is going on here is that Debian changed package names from buster to bullseye. Node 16 dockerhub default images are built on buster. Node 17 to 19 default images are built using bullseye. Node 20 default images are built using bookworm.
Can you tell me more about your app? As an example, if I go into an empty directory and type npx express-generator and then fly launch, my fly.toml doesn’t have an [env] section.
I’m not seeing that here, and have to leave that to others to address. I wrote the code that fly launch uses to generate Dockerfiles for Node apps and can help with any problems in Dockerfiles and fly.toml files.
Hmm. My local version of Node (outside of any Docker containers) is also 16.16 so you’d expect the “python” package to be used based on the above code, which is correct.
Sure. @rubys could you send me your GitHub username? I’ll invite you to the affected repository.
$ flyctl version
Update available 0.1.47 -> 0.1.51.
Run "flyctl version upgrade" to upgrade.
flyctl v0.1.47 darwin/amd64 Commit: c39ca26fffe52f54832e94c8767995d2ba3a41c3-dirty BuildDate: 2023-07-03T17:00:20Z