Во-первых, позвольте мне дать вам немного фона.
В моей компании мы ищем способ создавать и делиться внутренней документацией с помощью документации на основе GIT и Markdown.
Причины этих вариантов являются то, что (1) Markdown проста в использовании, и все разработчики знают, как его использовать; и (2) Служба на основе GIT поможет нам отслеживать изменения документации и договориться о улучшении с использованием запросов на тягу и «отзывы DOC», прежде чем объединить любые изменения.
После некоторых поисков мы решили пойти с Docusaurus статической документацией Generator, созданный Facebook.
Мы действительно наслаждаемся этим, так как оно основано на реактивном родном, и после того, как все будет настроено, очень легко представить новую страницу DOC или вносить изменения.
Но когда мы впервые начали использовать его, мы оказались с проблемой развертывания. Мы хотели сохранить документацию частную и не хотеть использовать какие-либо из услуг, которые команда Docusuarus предлагает (NetLify, Github Pages и т. Д.). Вместо этого мы решили провести его в нашем собственном кластере «dev» Kubernetes, чтобы мы могли получить доступ к нему через наш прокси и VPN.
Я не нашел никакой информации о том, как сделать это онлайн, поэтому вот шаги, которые я следовал, если вы оказываетесь с той же проблемой:
Шаги развертывания
- Я предполагаю, что у вас уже есть веб-сайт Docusuarus, который вы можете запустить локально использовать
пряжа, пряжа сборка, пряжа служит
(или ихNPM
эквиваленты). - С той из того, как вам просто нужно построить документ докера:
FROM node:12.19.0-alpine WORKDIR /app COPY . /app RUN yarn RUN yarn build ENTRYPOINT ["yarn", "run", "serve"]
- Нажмите на новое изображение в предпочтительный реестр Docker
- И, наконец, примените развертывание K8S к вашему кластеру. Сохранить и настроить ниже
Ямл
а потом просто бегиKubectl Apply Printe -F Deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: ms-docs spec: selector: matchLabels: app: ms-docs template: metadata: labels: app: ms-docs spec: containers: - name: ms-docs envFrom: - configMapRef: name: ms-docs image: my-registry/ms-docs:stable imagePullPolicy: Always livenessProbe: failureThreshold: 15 httpGet: path: / port: 3000 initialDelaySeconds: 20 periodSeconds: 15 timeoutSeconds: 5 ports: - containerPort: 80 name: http protocol: TCP readinessProbe: failureThreshold: 15 httpGet: path: / port: 3000 initialDelaySeconds: 20 periodSeconds: 15 timeoutSeconds: 5 resources: limits: cpu: "500m" memory: 384Mi requests: cpu: "500m" memory: 384Mi -------- apiVersion: v1 kind: Service metadata: name: ms-docs spec: ports: - name: http port: 3000 protocol: TCP targetPort: 3000 selector: app: ms-docs type: ClusterIP
Оригинал: «https://dev.to/aesadde/how-to-deploy-a-docusaurus-website-to-k8s-2p46»