Installation du devcontainer
Commencez par créer un répertoire qui contiendra tous les fichiers de votre site. Ouvrez ensuite ce répertoire avec VS-Code.
Créez un sous-répertoire .devcontainer
(n’oubliez pas le point du début). Dans ce répertoire, créez un fichier devcontainer.json
avec le contenu suivant:
{
"name": "MkDocs-Edu",
"build": {
"dockerfile": "Dockerfile"
}
}
Toujours dans .devcontainer
, créez aussi le Dockerfile
suivant :
ARG VARIANT=bullseye
FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}
# Install additional software
RUN apt-get update && \
export DEBIAN_FRONTEND=noninteractive && \
apt-get -y install --no-install-recommends \
imagemagick \
zip
# Copy files needed to build our flavour of mkdocs
COPY mkdocs-edu/* /mkdocs-edu/
WORKDIR /mkdocs-edu
# Install "poetry", then build and install mkdocs
RUN pip install poetry && \
poetry config virtualenvs.create false && \
poetry install
# Copy scripts for serving and building the site
COPY --chmod=0755 scripts/* /usr/local/bin/
Dans .devcontainer
, créez maintenant le dossier mkdocs-edu
dans lequel vous ajoutez le fichier pyproject.toml
suivant :
[tool.poetry]
name = "mkdocs-edu"
version = "0.1.0"
description = "mkdocs for education web site"
authors = ["Jacques Supcik <jacques.supcik@hefr.ch>"]
license = "Apache-2.0"
[tool.poetry.dependencies]
python = "^3"
mkdocs = "^1"
mkdocs-material = "^8"
mkdocs-macros-plugin = "^0.7"
mkdocs-awesome-pages-plugin = "^2"
jinja2-cli = "^0.8"
[tool.poetry.dev-dependencies]
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
Créez enfin un dossier scripts
dans .devcontainer
avec le fichier serve
suivant:
#!/usr/bin/env bash
set -o errexit
set -o pipefail
set -o nounset
# Serve MkDocs
mkdocs serve -f config/mkdocs.yml
Vous devriez maintenant avoir la structure de fichiers suivante:
.devcontainer
├── Dockerfile
├── devcontainer.json
├── mkdocs-edu
│ └── pyproject.toml
└── scripts
└── serve