84 lines
2.9 KiB
Markdown
84 lines
2.9 KiB
Markdown
<h1>Deploy mdBook with Hero on Docker</h1>
|
|
|
|
<h2>Table of Contents</h2>
|
|
|
|
- [Introduction](#introduction)
|
|
- [Prerequisites](#prerequisites)
|
|
- [Steps](#steps)
|
|
- [Questions and Feedback](#questions-and-feedback)
|
|
|
|
---
|
|
|
|
## Introduction
|
|
|
|
We give the basic steps to use Hero on Docker to run and create mdBooks.
|
|
|
|
You can then use a code editor, e.g. VSCodium, to change the files locally and use Hero docker to build and serve the book.
|
|
|
|
## Prerequisites
|
|
|
|
- Docker engine should be installed and running
|
|
- You need a git repository to work with (here we use **info_tfgrid**)
|
|
- Clone the hero mdbook repo on your local machine (i.e. the host) and note the path
|
|
|
|
## Steps
|
|
|
|
We show the steps to use Hero with Docker.
|
|
|
|
Once you've set Hero Docker, you can adjust the files at the host path in a code editor and use the docker container to build and serve the book with Hero.
|
|
|
|
Note that you will need to adjust the local path of the git repo and the docker path of the git repo.
|
|
|
|
- On a terminal window, start Hero docker
|
|
```
|
|
sudo docker run --name herodocker -d -v /local/machine/path/to/git/repo:/docker/path/to/git/repo/ ghcr.io/scottyeager/hero:latest
|
|
```
|
|
- In our case, the docker path to the repo is the following
|
|
```
|
|
/root/code/git.ourworld.tf/tfgrid/info_tfgrid/
|
|
```
|
|
- Execute the Hero docker container
|
|
```
|
|
sudo docker exec -it herodocker bash
|
|
```
|
|
- Git configuration
|
|
- Set git lobally with a safe directory
|
|
```
|
|
git config --global --add safe.directory /root/code/git.ourworld.tf/tfgrid/info_tfgrid
|
|
```
|
|
- You can now use Hero normally, e.g. with **projectinca**
|
|
- With a URL:
|
|
```
|
|
hero mdbook -u https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/heroscript/projectinca
|
|
```
|
|
- With a path:
|
|
```
|
|
hero mdbook -p /root/code/git.ourworld.tf/tfgrid/info_tfgrid/heroscript/projectinca
|
|
```
|
|
- In this case, you can modify the mdbook on the local machine's git repo that you set in the prerequisites section and the changes will be shown on the docker path
|
|
- To view the mdbook on your local browser, run the lines:
|
|
```
|
|
cd ~/hero/var/mdbuild/projectinca/
|
|
mdbook serve -n 0.0.0.0
|
|
```
|
|
- You should be able to view the rendered book at
|
|
```
|
|
http://172.17.0.2:3000/
|
|
```
|
|
- To stop the container, exit the Docker container with `exit` and run the following:
|
|
```
|
|
sudo docker stop herodocker
|
|
```
|
|
- To start Hero after having stopped the container, run the following:
|
|
```
|
|
sudo docker start herodocker
|
|
```
|
|
- You can now run the previous line **docker exec** and continue your work.
|
|
- If you need to update the docker Hero image, run the following line:
|
|
```
|
|
docker pull ghcr.io/scottyeager/hero:latest
|
|
```
|
|
|
|
## Questions and Feedback
|
|
|
|
If you have any questions or feedback, please let us know by either writing a post on the [ThreeFold Forum](https://forum.threefold.io/), or by chatting with us on the [TF Grid Tester Community](https://t.me/threefoldtesting) Telegram channel. |