Containers
Handbook - Related topics

Effective project configuration

The vast flexibility of the Sphere Engine Containers module allows numerous different approaches for configuring projects. Each approach can yield a similar effect, but they are not equal in terms of efficiency.

As a rule of thumb, it's worth keeping in mind the following:

  • it is better to have all dependencies pre-downloaded than to download them for every submission,
  • it is better to keep files as a part of the project if they don't change rather than submit them separately every time,
  • submissions should contain only new or modified files prepared by the end-users.

If you stick to the above rules, your end-users' submissions will be executed fast, improving their user experience and keeping your budget in line.

Read-only files

Marking files as read-only will prevent users from modifying them. Files will become read-only only in regular workspaces and submissions. All files will still be writeable in the project edit mode.

Note: Keep in mind that providing a directory path will prevent the user from modifying all files in that folder, as well as creating new files in that folder.

Providing a file path will prevent the user from modifying just that file.

How to make files read-only

After opening the project in edit mode, add a list of files or directories to the files.read_only field in the project configuration file.

Example of the project config using the files.read_only field:

{
  "version": "2.1",
  "scenarios": {
    ...
  },
  "files": {
    "read_only": [
      "read_only_file.txt",
      "read_only_folder",
      ".sphere-engine"
    ]
  }
}

Note: All non-absolute paths are interpreted as relative to the /home/user/workspace directory.

Symlinked files and directories

Marking symlinked files and directories as read-only is not supported. They will still appear read-only in the editor, but users can modify them using the command line.