doc: modular sandbox configs

This commit is contained in:
Anton 2023-12-05 01:03:07 +05:00
parent 50dc6a71d1
commit 99cef70dab

View File

@ -47,7 +47,7 @@ docker build --file images/python/Dockerfile --tag codapi/python:latest images/p
And register the image as a Codapi _box_ in `configs/boxes.json`: And register the image as a Codapi _box_ in `configs/boxes.json`:
```json ```js
{ {
// ... // ...
"python": { "python": {
@ -56,12 +56,10 @@ And register the image as a Codapi _box_ in `configs/boxes.json`:
} }
``` ```
Finally, let's configure what happens when the client executes the `run` command in the `python` sandbox. To do this, we edit `configs/commands.json`: Finally, let's configure what happens when the client executes the `run` command in the `python` sandbox. To do this, we create `configs/commands/python.json`:
```json ```js
{ {
// ...
"python": {
"run": { "run": {
"engine": "docker", "engine": "docker",
"entry": "main.py", "entry": "main.py",
@ -73,19 +71,16 @@ Finally, let's configure what happens when the client executes the `run` command
] ]
} }
} }
}
``` ```
This is essentially what it says: This is essentially what it says:
> When the client executes the `run` command in the `python` sandbox, save their code to the `main.py` file, then run it in the `python` box (Docker container) using the `python main.py` shell command. > When the client executes the `run` command in the `python` sandbox, save their code to the `main.py` file, then run it in the `python` box (Docker container) using the `python main.py` shell command.
What if we want to add another command (say, `test`) to the same sandbox? Let's edit `configs/commands.json` again: What if we want to add another command (say, `test`) to the same sandbox? Let's edit `configs/commands/python.json` again:
```json ```js
{ {
// ...
"python": {
"run": { "run": {
// ... // ...
}, },
@ -101,7 +96,6 @@ What if we want to add another command (say, `test`) to the same sandbox? Let's
] ]
} }
} }
}
``` ```
Besides configuring a different shell command, here we increased the maximum output size to 8Kb, as tests tend to be quite chatty (you can see the default value in `configs/config.json`). Besides configuring a different shell command, here we increased the maximum output size to 8Kb, as tests tend to be quite chatty (you can see the default value in `configs/config.json`).