Упаковка в docker
This commit is contained in:
11
Dockerfile
Normal file
11
Dockerfile
Normal file
@@ -0,0 +1,11 @@
|
||||
FROM squidfunk/mkdocs-material AS m3u-su-docs-builder
|
||||
COPY . /docs
|
||||
RUN mkdocs build
|
||||
|
||||
FROM nginx:alpine AS m3u-su-docs
|
||||
LABEL org.opencontainers.image.authors="Anthony Axenov <anthonyaxenov@gmail.com>"
|
||||
COPY --from=m3u-su-docs-builder /docs/site /usr/share/nginx/html
|
||||
WORKDIR /usr/share/nginx/html
|
||||
USER root
|
||||
EXPOSE 80
|
||||
CMD [ "nginx", "-g", "daemon off;" ]
|
||||
24
Makefile
24
Makefile
@@ -1,3 +1,4 @@
|
||||
## image: Run mkdocs with live-reloading
|
||||
live:
|
||||
@echo "Wait until container starts and open http://localhost:3000 to see live preview"
|
||||
@docker run \
|
||||
@@ -9,6 +10,7 @@ live:
|
||||
-v ${PWD}:/docs \
|
||||
squidfunk/mkdocs-material:9.6.20
|
||||
|
||||
## image: Build local static site
|
||||
build:
|
||||
@docker run \
|
||||
--pull always \
|
||||
@@ -16,4 +18,24 @@ build:
|
||||
--interactive \
|
||||
--tty \
|
||||
-v ${PWD}:/docs \
|
||||
squidfunk/mkdocs-material:9.6.20 build --verbose
|
||||
squidfunk/mkdocs-material:9.6.20 build
|
||||
|
||||
## image: Build docker image
|
||||
image:
|
||||
@docker build \
|
||||
--tag m3u-su-docs:latest \
|
||||
--tag git.axenov.dev/iptv/m3u-su-docs:latest \
|
||||
.
|
||||
|
||||
## push: Push docker image to registry
|
||||
push:
|
||||
@docker push git.axenov.dev/iptv/m3u-su-docs:latest
|
||||
|
||||
## push: Push docker image to registry
|
||||
run:
|
||||
@docker run -p 3001:80 git.axenov.dev/iptv/m3u-su-docs:latest
|
||||
|
||||
## help: Show this message and exit
|
||||
help: Makefile
|
||||
@echo "Available recipes:"
|
||||
@sed -n 's/^##//p' $< | column -t -s ':' | sed -e 's/^/ /'
|
||||
|
||||
@@ -17,7 +17,7 @@ icon: material/book-cog-outline
|
||||
**Каждое предложение должно быть на одной строке.**
|
||||
Это даёт более наглядную разницу (diff) в тексте при работе с git.
|
||||
|
||||
Абзацы и списки должны отделяться 1 пустой строкой сверху и снизу.
|
||||
Абзацы и списки должны отделяться 1 пустой строкой до и после.
|
||||
|
||||
Допустимо использовать любые стилистические возможности темы **Material for MkDocs** и самого **mkdocs**, но не следует визуально перегружать текст.
|
||||
Документацию по ним см. по ссылкам ниже.
|
||||
@@ -74,24 +74,30 @@ icon: material/book-cog-outline
|
||||
make live
|
||||
```
|
||||
|
||||
Перегенерирует документацию на лету сразу после изменения файлов.
|
||||
Перегенерирует документацию на лету сразу после сохранения файлов.
|
||||
|
||||
Открывает [localhost:3000](http://localhost:3000) для просмотра изменений в реальном времени.
|
||||
Документацию в реальном времени можно просматривать по адресу [localhost:3000](http://localhost:3000).
|
||||
|
||||
## Генерация статических файлов
|
||||
## Генерация статического сайта
|
||||
|
||||
```
|
||||
make build
|
||||
```
|
||||
|
||||
Генерирует статические файлы, которую можно версионировать и хранить/деплоить отдельно.
|
||||
|
||||
Открывает [localhost:8080/docs](http://localhost:8080/docs) для просмотра сгенерированной документации.
|
||||
Генерирует статические файлы, которую можно версионировать, хранить,деплоить отдельно или просматривать на ПК через браузер.
|
||||
|
||||
Готовый скомпилированный статический сайт с документацией находится в директории `site/`.
|
||||
Он же хранится в репозитории вместе с исходными файлами, потому что:
|
||||
|
||||
* я посчитал это **более удобным для деплоя**: ради редких обновлений нет смысла тратить ресурсы серверов на ci/cd, actions по хукам и перманентную работу `mkdocs` в режиме `build`;
|
||||
* я посчитал это **более удобным для использования**: можно в любой момент открыть актуальную документацию в браузере через `site/index.html` без необходимости `make` и `docker`.
|
||||
## Генерация docker-образа
|
||||
|
||||
Пересборка должна происходить перед каждым коммитом.
|
||||
```
|
||||
make image
|
||||
```
|
||||
|
||||
Собирает docker-образ на основе nginx, генерируя перед этим статический сайт.
|
||||
|
||||
Запустить контейнер из этого образа можно командой:
|
||||
|
||||
```
|
||||
make run
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user