Перейти к содержанию

Тестовый контейнер MkDocs

Этот простенький контейнер был собран для локальной отладки будущего сайта с документацией. Далее я опишу, как это можно повторить.

Создайте директорию для хранения данных и несколько файлов рядом с ней. Вам потребуется установленный docker и docker-compose. Я использовал Docker в режиме без прав суперпользователя (rootless). Как установить Docker в этом режиме, я кратко описал здесь.

Создаем директорию для хранения данных:

mkdir data

Создаем файл docker-compose.yml:

services:
  mkdocs:
    restart: always
    image: mkdocs
    build: .
    container_name: mkdocs
    ports:
      - "8080:8080"
    volumes:
      - ./data:/data

Создаем файл Dockerfile:

FROM debian
COPY ./init.sh ./start.sh /
RUN /init.sh
CMD /start.sh

Создаем скрипт инициализации init.sh:

#!/bin/bash
apt update
apt upgrade -y
apt install mkdocs -y

Создаем скрипт, который будет запускаться при старте контейнера start.sh:

#!/bin/bash
cd /data
mkdocs new .
mkdocs serve -a 0.0.0.0:8080

Обратите внимание, что команда mkdocs new . выполняется в любом случае. Я заметил, что если сайт в директории уже создан, она не будет пересоздавать его заново при перезапуске контейнера, так что это не затрет ваши данные.