There's been a major change to the cyber-dojo start-points architecture.
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
For example:
{
"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"
]
}