Workspaces
Overview
Release Workspaces provide multiple containers within your environment or runnable job with access to a common filesystem. This filesystem can be made up of both regular shared files that can be created and modified by your containers or mounts of external resources such as cloud storage buckets (S3, GCS, etc.) or Git repositories.
Defining Workspaces
Single Auto-Attached Workspace
In most cases all you'll need is a single workspace per environment that you'll want automatically attached to all of your containers.
The recommended basic configuration is:
By setting auto_attach: true
, the workspace will be automatically attached to every job and service defined in your Application Template and accessible from /workspace
within the container's filesytem.
Multiple Workspaces (Advanced)
In more advanced cases you may want to have multiple workspaces and control which jobs and services have access to which workspaces.
Here's an example configuration:
In this example, both the backend
-related server and build job and the frontend
-related server and build job each have access to a shared /assets
directories but because they are in different workspaces, they're completely isolated filesystems.
Use Cases
Sharing files between jobs
A common use case is when a pipeline of jobs all need to work on files produced by previous jobs in the pipeline. Workspaces can make this simple by providing a known location to read/write files.
Example:
Mounting Git repositories
Example:
Note that writes to a Git repository mount are allowed but will be only visible locally. The container must commit and push to make the changes accessible remotely.
Mounting cloud storage buckets
Example:
Explicitly setting the bucket region
Mounting a public S3 bucket
Last updated
Was this helpful?