The documentation of project ASP.NET5CO is built with a Docker image that uses the Skinny Bones Jekyll theme.
Installation
Follow these steps to setup a Jekyll environment for the documentation of the project.
Install Docker and start daemon
$ # For Fedora systems
$ sudo yum -y install docker-io
$ sudo systemctl start docker.serviceClone the ASP.NET5CO repository
$ git clone git@github.com:lopezpdvn/aspnet5co.git
$ cd aspnet5coRun Jekyll container from Docker Hub inside the repository directory. The first time will take a few minutes since it will download the docker image and build it.
$ HOSTPORT=<host port number>
$ sudo docker run -t -i -v "$PWD:/src" -p $HOSTPORT:4000 --entrypoint=bash grahamc/jekyll
...
root@29bfc31d9ce3:/src# cdInstall all dependencies
root@29bfc31d9ce3:/src# bundle installGet out of the container.
root@29bfc31d9ce3:/src# exitCreate a Docker image from the container using the container id shown in the
container prompt, in this case is 29bfc31d9ce3 and we’re naming it
lopezpdvn/aspnet5co-doc
$ sudo docker commit 29bfc31d9ce3 lopezpdvn/aspnet5co-doc0Stop and remove original container used to create the image
$ sudo docker stop 29bfc31d9ce3
$ sudo docker rm 29bfc31d9ce3Building and serving the documentation site
You’re done, to locally build and serve the documentation you need to do 2 things:
- Start a temporary container with the image created above
- Run the Make target
servelocal
To start a temporary container you run the below commands
$ HOSTPORT=<host port number>
$ sudo docker run -t -i -v "$PWD:/src" -p $HOSTPORT:4000 --entrypoint=bash grahamc/jekyll
root@<temporary container id>:/src#What I do is I create short script at bin/localserver which sets a few
details of my host machine including the host port for the HTTP server and runs
above command. Then I run such script with the Make target localserver
$ make localserver
root@<temporary container id>:/src#Then inside the container you run the Make target servelocal
root@<temporary container id>:/src# make servelocalThe docker container will execute the Jekyll server and serve the contents on the selected host port.