Below you will find pages that utilize the taxonomy term “Docker”
Npm Broke Arm64 Pi Garage Builds
I know this sounds crazy right? Lets rewind a bit so we can try and understand why.
In a previous post Material 3 + Flutter 3.16.0 Broke Pi Garage Theme I stated that you should pin core dependencies. Apart from the Flutter version there was another place that I did not pin dependencies specifically enough. This was in the Dockerfile. Here I has specified the node version as below.
FROM node:18
As you can see although this would limit the Node version to 18 this would allow anything from 18.0.0 through to 18.100.0. Something very interesting happened with version 18.19.0. In the Release Notes one of the first things mentioned is that npm 10 has been backported and included. This like the Flutter + Material 3 issue linked above caught me by surprise.
Pi Garage Deployment
The next decision to make was how to deploy the backend application. I had many different ways that I could release the application. However there were some key considerations to make.
- Ease of deployment (especially for target audience)
- Versioned releases
- Ease of rollback?
This lead me to consider the following.
NPM Package
As the backend is built in Node.JS it would be easy to just push the built packages to npm. Although this would get versioning and rollback I thought that this would be a pretty 💩 experience to deploy and run it.