Production Docker image за WebBuild Markdown проектна документация.
Image-ът стартира Laravel reader приложение върху PHP CLI runtime. Той съдържа файловете за изпълнение, публичните reader assets, конфигурационния слой и Composer зависимостите. Не съдържа проектното Markdown съдържание. Документацията трябва да се монтира в container-а на /var/www/source.
mkdir -p docs-source
printf '# Проектна документация\n\nПубликувано съдържание.\n' > docs-source/README.md
docker run --rm \
-p 8080:80 \
-v "$PWD/docs-source:/var/www/source:ro" \
-e APP_NAME="Проектна документация" \
-e APP_BRAND="Acme" \
-e APP_VERSION="0.1.18" \
sv90/project-documentation:0.1.18
Отворете http://127.0.0.1:8080/.
Монтирайте Markdown документацията на:
/var/www/source
Минимално съдържание:
source/
README.md
Не монтирайте цял checkout за разработка върху /var/www/project при използване на production image-а. Това ще скрие файловете за изпълнение, които image-ът вече съдържа.
Готов файл за копиране: examples/docker-compose.yml.
services:
docs:
image: sv90/project-documentation:0.1.18
ports:
- "8080:80"
environment:
APP_NAME: "Проектна документация"
APP_BRAND: "Acme"
APP_NAME_DESCRIPTION: "Вътрешна документация"
APP_VERSION: "0.1.18"
APP_SOURCE: "source"
volumes:
- ./source:/var/www/source:ro
restart: unless-stopped
Default логото е част от image-а като /webbuild-b-white.png. За собствено лого или други публични assets монтирайте и /var/www/assets, и задайте APP_LOGO към относителен файл от тази директория.
Копирайте файла в директория за внедряване, която съдържа source/README.md, след което стартирайте:
docker compose up -d
Environment променливи за изпълнение:
| Променлива | Стойност по подразбиране | Значение |
|---|---|---|
APP_NAME | Проектна документация | Заглавие и име на документацията. |
APP_BRAND | WebBuild | Бранд текст. |
APP_LOGO | /webbuild-b-white.png | Built-in public logo или custom файл от assets директорията. |
APP_NAME_DESCRIPTION | By WebBuild | Подзаглавие. |
APP_VERSION | VERSION файла | Версията на документационния reader/runtime, показана в sidebar header-а. |
PROJECT_READER_SOURCE_PATH | /var/www/source | Директория със съдържанието в container-а. |
PROJECT_READER_ASSETS_PATH | /var/www/assets | Директория с публични assets в container-а. |
APP_SOURCE | source | Локален fallback за development, когато не е зададен PROJECT_READER_SOURCE_PATH. |
Laravel runtime слуша на container port 80.
Готов минимален файл за kubectl apply: examples/kubernetes.yaml.
За малка документация примерът монтира ConfigMap като /var/www/source. За по-голямо съдържание заменете ConfigMap volume-а с persistent volume, git-sync/init container или друг deployment процес, който записва Markdown файлове в същия path.
apiVersion: v1
kind: ConfigMap
metadata:
name: project-docs-source
data:
README.md: |
# Проектна документация
Публикувано съдържание.
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: project-docs
spec:
replicas: 1
selector:
matchLabels:
app: project-docs
template:
metadata:
labels:
app: project-docs
spec:
containers:
- name: docs
image: sv90/project-documentation:0.1.18
ports:
- containerPort: 80
env:
- name: APP_NAME
value: "Проектна документация"
- name: APP_BRAND
value: "Acme"
- name: APP_NAME_DESCRIPTION
value: "Вътрешна документация"
- name: APP_VERSION
value: "0.1.18"
- name: APP_SOURCE
value: "source"
volumeMounts:
- name: source
mountPath: /var/www/source
readOnly: true
readinessProbe:
httpGet:
path: /
port: 80
livenessProbe:
httpGet:
path: /
port: 80
volumes:
- name: source
configMap:
name: project-docs-source
---
apiVersion: v1
kind: Service
metadata:
name: project-docs
spec:
selector:
app: project-docs
ports:
- name: http
port: 80
targetPort: 80
След като копирате файла като kubernetes.yaml, го приложете с:
kubectl apply -f kubernetes.yaml
За внедряване използвайте version tag, например sv90/project-documentation:0.1.18. Тагът latest сочи към последната публикувана версия.
Image-ът се публикува за linux/amd64 и linux/arm64.
Няма отделен health endpoint; използвайте HTTP probe към /. Container-ът чете Markdown съдържание от монтирания source volume и не инсталира зависимости по време на изпълнение.
Content type
Image
Digest
sha256:b4534be82…
Size
52.2 MB
Last updated
about 1 month ago
docker pull sv90/project-documentation