Configure Dev Environment
To provide the best possible experience, a dev environment must be pre-configured for your project. A configured environment includes all necessary tools and runtimes, IDE indexes, and other data required by the project, e.g., environment variables, project dependencies, and so on. As a result, a user can start working on their project right after a dev environment is created.
Dev environment configuration is defined using devfiles. This can be a single devfile.yaml
or a set of *.devfile.yaml
files in the .space
directory of your project. Learn more about devfiles
A devfile lets you specify the following dev environment settings (all settings in the table below are optional, you can provide only the ones relevant to your project):
Basic | |
---|---|
A configuration name is used to identify a configuration in the UI. |
Run environment | |
---|---|
The image must include the tooling and runtimes required by the project. You can use an image from Docker Hub (or other registries that doesn't require authentication), from a Space Packages registry, or even define a custom image using a If you skip this step, the created dev environments will use the default image. | |
Dev environments come in three different types that differ by available compute resources. | |
You can specify environment variables that will be available in the dev environment. |
IDE | |
---|---|
You can specify a default IDE and a particular IDE version. | |
You can change the configuration of Java Virtual Machine (JVM) your IntelliJ-based IDE runs on. | |
For mono-repositories with multiple projects, you can specify a project root directory. |
Warm-up | |
---|---|
A warm-up snapshot contains pre-built project data. By default, the snapshot contains only IDE indexes, but it can also contain additional project data like dependencies, build caches, and so on. You can automate creating a warm-up snapshot: Space can create it on schedule or on commit push. If a snapshot is not available, Space will create dev environments without warm-up data. |
Parameters and secrets | |
---|---|
A dev environment might require sensitive user or project data, e.g. credentials to an external service. Secrets and parameters are available in a dev environment as environment variables. |