A Vessel is the "unit of work" in Shipyard, or an individual script that has been designed and built to accomplish a very specific job. Just like the real world equivalent, Vessels can be built for any purpose and come in any size, shape, or speed.
Vessels are run in independent docker containers, so underlying code, environment variables, and packages of one cannot affect another.
Every Vessel is either built with code or with a Blueprint that contains the design specifications that determine what that Vessel will do. New Vessels get built through the process of building a Fleet. The options required for creating a New Vessel differ based on the creation method that you select.
Building a Vessel with code allows you to write and run scripts from scratch with no changes to your existing code or additional configuration files. The code is executed on Shipyard's cloud infrastructure in isolation.
When building a Vessel with code, your script should return an exit code of 0 to indicate a successful run. Any other exit code indicates failure.
Additionally, your script should stop its work if it receives a SIGTERM (15) signal.
- Arguments (Optional)
- Environment Variables (Optional)
- Code Packages (Optional)
- System Packages (Optional)
- Notifications (Optional)
- Guardrails (Optional)
With a Blueprint
Building a Vessel with a Blueprint allows you to run scripts without needing to touch code. Instead, you're only required to fill out a few key form inputs. This user input then gets passed to a script in the backend.
- A Vessel can only be tied to one Fleet, one Blueprint, one Project, and one Organization.
- A Vessel's Blueprint or Code type cannot be changed once it is built.
- A Vessel is version controlled within its Fleet. A Vessel's previous configuration within a Fleet is viewable in the Fleet's Version Control tab.