MkDocs
Instalacja
Założenia konfiguracyjne:
- MkDocs uruchamiamy w kontenerze
mkdocsna obraziesquidfunk/mkdocs-material. - Plik Docker Compose przechowujemy w
/srv/docker/compose/mkdocs - Projekt MkDocs (
mkdocs.yml+ katalogdocs/) przechowujemy w/srv/docker/projects/docs
Tworzenie katalogów
Tworzymy katalog dla Compose:
sudo mkdir -p /srv/docker/compose/mkdocs
sudo chown -R "$USER:$USER" /srv/docker/compose/mkdocs
Tworzymy katalog projektu MkDocs:
sudo mkdir -p /srv/docker/projects/mkdocs/docs
sudo chown -R "$USER:$USER" /srv/docker/projects/mkdocs
Dostęp do sieci Docker
Wymagany dostęp do sieci proxy
Aby udostępnić aplikację publicznie, wymaga ona dostępu do zewnętrznej sieci Docker proxy.
Konfiguracja Docker Compose
Przechodzimy do katalogu Compose:
cd /srv/docker/compose/mkdocs
Tworzymy i edytujemy plik compose.yaml:
micro compose.yaml
W pliku umieszczamy:
compose.yaml
services:
mkdocs-docs:
image: squidfunk/mkdocs-material
container_name: mkdocs-docs
working_dir: /docs
volumes:
- /srv/docker/projects/mkdocs/docs:/docs
command: ["serve", "-a", "0.0.0.0:8000"]
restart: unless-stopped
networks:
- proxy
networks:
proxy:
external: true
Zapisujemy plik i wychodzimy z edytora.
Konfiguracja MkDocs
Tworzymy i edytujemy plik mkdocs.yml w katalogu projektu:
micro /srv/docker/projects/mkdocs/docs/mkdocs.yml
W pliku umieszczamy:
mkdocs.yaml
site_name: Help Docs
theme:
name: material
palette:
- scheme: default
toggle:
icon: material/brightness-7
name: Przełącz na tryb ciemny
- scheme: slate
toggle:
icon: material/brightness-4
name: Przełącz na tryb jasny
features:
- content.code.copy
markdown_extensions:
- attr_list
- admonition
- pymdownx.highlight
- pymdownx.superfences
nav:
- Start: index.md
- Page: page.md
- Parent 01:
- Child 01: parent-01/childpage-01.md
- Child 02: parent-01/childpage-02.md
- Parent 02:
- Child 01: parent-02/childpage-01.md
- Child 02: parent-02/childpage-02.md
Zapisujemy plik i wychodzimy z edytora.
Przykładowy index.md
Tworzymy i edytujemy plik w folderze /docs projektu docs:
micro /srv/docker/projects/mkdocs/docs/docs/index.md
W pliku umieszczamy:
index.md
# Welcome to MkDocs
For full documentation visit [mkdocs.org](https://www.mkdocs.org).
## Commands
* `mkdocs new [dir-name]` - Create a new project.
* `mkdocs serve` - Start the live-reloading docs server.
* `mkdocs build` - Build the documentation site.
* `mkdocs -h` - Print help message and exit.
## Project layout
mkdocs.yml # The configuration file.
docs/
index.md # The documentation homepage.
... # Other markdown pages, images and other files.
Tworzenie struktury plików
Tworzymy katalogi i minimalne pliki zgodne z nav:
cd /srv/docker/projects/mkdocs/docs
mkdir -p docs/parent-01 docs/parent-02
touch docs/page.md
touch docs/parent-01/childpage-01.md docs/parent-01/childpage-02.md
touch docs/parent-02/childpage-01.md docs/parent-02/childpage-02.md
Uruchomienie kontenera
Przechodzimy do katalogu Compose i uruchamiamy kontener:
cd /srv/docker/compose/mkdocs
docker compose up -d
Sprawdzamy, czy kontener działa:
docker ps | grep mkdocs
Konfiguracja reverse proxy
Dodajemy wpis do Caddyfile:
Caddyfile
mkdocs.fulc.ro {
reverse_proxy mkdocs-docs:8000
}
Przeładowujemy Caddy:
docker exec -it caddy caddy reload --config /etc/caddy/Caddyfile
Logi
Podglądamy logi kontenera:
docker logs -f mkdocs