v2.0.0
🚀 MAJOR Improvements to Spin
With the last beta release we noticed there were a number of pain points of getting up and running with Docker. We've been quietly refactoring and improving a ton of things in Spin over the last number of months. The reason why we were quiet about it was because we weren't sure it was going to be possible.
Good news is: IT'S TOTALLY POSSIBLE 💪
🎥 Video to learn more
🤩 New Features
Holy smokes, where do we even begin 😆
spin deploy: Zero-downtime deployments. No CI/CD required!
Deploy right from your terminal! We learned many users wanted a simple way to deploy their application quickly without the headache of configuring CI/CD. Although we still support and recommend CI/CD for large teams, we also created spin deploy
as an option for users to quickly deploy their application without any downtime.
How it works:
- Spin creates a local Docker registry on your machine
- We find the Dockerfiles in your project, build them, and push them to your local registry
- We then create an SSH tunnel between your server and your machine, allowing the server to pull the docker image from your computer
- Spin verifies the deployment was successful and cleans up after itself
All of this is done without any downtime to your application 🥳
Anyone can make Spin templates
We added the ability for anyone who wants to make their own Spin template can do so all using GitHub. 🥳
Spin will continue to provide "official templates". For example, running spin new laravel
will pull from our completely refactored Laravel template, with serversideup/php v3
spin mkpasswd: Make password creations easier
Previously, we had you manually prepare a temporary container to create password hashes for the .spin.yml
file. To make this easier, we created spin mkpasswd
.
This runs a ~3MB Docker conatiner from serversideup/mkpasswd to dramatically speed this process up for you 😃👍
💯 Our core design principles
Nothing has changed in our core design principles. We've only enhanced these values even more:
- ALL infrastructure configurations should securely be stored and centrally managed within the repository
- Every environment (development, ci, staging, production, etc) should be 100% the same, regardless of the operating system it's running on
- The only requirements a user should need to run Spin is installing Docker. All other dependencies should be automated so users do not have to worry about installing other developer tools
- Every environment is designed to be disposable and repeatable