Start-points are now docker images rather than docker volumes.
Do an update
On your server, do an update:$ ./cyber-dojo update
Bring up a server with named start-point images
When you bring up a cyber-dojo server, you can name start-point docker images.For example, in this command:
$ ./cyber-dojo up \
--custom=acme/my-custom \
--exercises=acme/my-exercises \
--languages=acme/my-languages
the three start-point images are named
acme/my-custom,
acme/my-exercises, and
acme/my-languages.You can omit any of these three -- options and it will use a default.
The default --custom image name is cyberdojo/custom
The default --exercises image name is cyberdojo/exercises
The default --languages image name is cyberdojo/languages-common which holds start-points for the more common language+testFrameworks (C#, C++, Java, Javascript, Python).
These three default start-point images were created using, respectively:
$ ./cyber-dojo start-point create \
cyberdojo/custom \
--custom \
https://github.com/cyber-dojo/custom.git
$ ./cyber-dojo start-point create \
cyberdojo/exercises \
--exercises \
https://github.com/cyber-dojo/exercises.git
$ ./cyber-dojo start-point create \
cyberdojo/languages-common \
--languages \
$(curl --silent https://raw.githubusercontent.com/cyber-dojo/languages/master/url_list/common)
The image cyberdojo/languages-all holds start-points for all the
language+testFrameworks. It was created using:
$ ./cyber-dojo start-point create \
cyberdojo/languages-all \
--languages \
$(curl --silent https://raw.githubusercontent.com/cyber-dojo/languages/master/url_list/all)
To see more help on the up command:
$ ./cyber-dojo up --help
Create your own start-point images
The --dir option was one way, in the old architecture, to create your own start-point volume. For example:$ ./cyber-dojo start-point create \
tutorials \
--dir=/Users/fred/custom-tutorials
The --dir option is no longer supported.
You must now explicitly name the start-point type (--custom, --exercises, --languages)
and provide a list of git-repo URLs.
For example, the command:
$ ./cyber-dojo start-point create \
tutorials \
--custom \
/Users/fred/custom-tutorials
now creates a --custom start-point image named tutorials
and each URL must be git cloneable and contain at least one
manifest.json file adhering to the
start-point json format.
The --git option was another way, in the old architecure, to create your own start-point volume. For example:
$ ./cyber-dojo start-point create \
tdd \
--git=https://github.com/org/repo/exercises-tdd.git
The --git option is no longer supported.
You must now explicitly name the start-point type (--custom, --exercises, --languages)
and provide a list of git-repo URLs.
For example, the command:
$ ./cyber-dojo start-point create \
tdd \
--exercises \
https://github.com/org/repo/exercises-tdd.git
now creates an --exercises start-point image named tdd
and each URL must be git cloneable and contain at least one
manifest.json file adhering to the
start-point json format.
The --list option was the last way, in the old architecture, to create your own start-point volume. For example:
$ ./cyber-dojo start-point create \
ruby \
--list=https://raw.githubusercontent.com/org/repo/master/langs-ruby-urls
The --list option is no longer supported.
You must now explicitly name the start-point type (--custom, --exercises, --languages)
and provide a list of git-repo URLs.
For example, the command:
$ ./cyber-dojo start-point create \
ruby \
--languages \
$(curl --silent https://raw.githubusercontent.com/org/repo/master/langs-ruby-urls)
now creates a --languages start-point image named ruby
and the curl command must expand to a list of URLs each of which is git cloneable
and contains at least one
manifest.json file adhering to the
start-point json format.To see more help on the start-point create command:
$ ./cyber-dojo start-point create --help
Create a manifest.json file for each exercise
In the old architecture, each --exercises start-point entry was simply a file called instructions. The name associated with each instructions file (when you set up a practice session) was the name of the directory where it lived (with underscores replaced by spaces). In the new architecture, each --exercises start-point URL must be git cloneable and contain at least one manifest.json file adhering to a subset of the start-point json format:- You must specify only the display_name and visible_filenames entries.
- visible_filenames cannot contain a file called cyber-dojo.sh
{
"display_name": "Fizz Buzz",
"visible_filenames": [ "instructions" ]
}
Inspect a start-point image
To show (in JSON format) each display_name (eg "C (gcc), assert"), git-repo URL+SHA and image_name.For example:
$ docker pull cyberdojo/languages-common
$ ./cyber-dojo start-point inspect cyberdojo/languages-common
{
...
"C#, NUnit": {
"url": "https://github.com/cyber-dojo-languages/csharp-nunit",
"sha": "97eb6f778b777ee7bc789a44417c3440cbe2439a",
"image_name": "cyberdojofoundation/csharp_nunit"
},
...
"C (gcc), assert": {
"url": "https://github.com/cyber-dojo-languages/gcc-assert",
"sha": "1a9724fde31295a08054d93695180d64fcf05ccd",
"image_name": "cyberdojofoundation/gcc_assert"
},
...
"Python, unittest": {
"url": "https://github.com/cyber-dojo-languages/python-unittest",
"sha": "843ebcf9e308ffb9bf686ef5e27e577f9395798b",
"image_name": "cyberdojofoundation/python_unittest"
},
...
}
List all start-point images
In JSON format, by type:$ ./cyber-dojo start-point ls
{
"custom": [
"cyberdojo/custom:latest"
],
"exercises": [
"cyberdojo/exercises:latest"
],
"languages": [
"cyberdojo/languages-all:latest",
"cyberdojo/languages-common:latest",
"cyberdojo/languages-small:latest"
]
}