Docusaurus Web サイトを K8s にデプロイする方法
7334 ワード
まず、背景を少し説明させてください.
私の会社では、内部ドキュメントを作成し、git および Markdown ベースのドキュメント サービスで共有する方法を探しています.
これらの選択の背後にある理由は、(1) Markdown は使いやすく、すべての開発者がその使い方を知っているためです. (2) git ベースのサービスは、ドキュメントの変更を追跡し、変更をマージする前にプル リクエストと「ドキュメント レビュー」を使用して改善に同意するのに役立ちます.
いろいろ調べた結果、Facebook が作成した静的ドキュメント サイト ジェネレーター Docusaurus を使用することにしました.
これは React Native に基づいており、セットアップが完了すると、新しいドキュメント ページを送信したり、変更を加えたりするのが非常に簡単になるため、とても気に入っています.
しかし、最初に使い始めたとき、展開の問題に直面しました.私たちはドキュメンテーションを非公開に保ち、docusuarus チームが提案するサービス (Netlify、GitHub Pages など) を使用したくありませんでした.代わりに、プロキシと VPN 経由でアクセスできるように、独自の「dev」Kubernetes クラスターでホストすることにしました.
オンラインでこれを行う方法に関する情報が見つからなかったので、同じ問題に遭遇した場合に備えて、私が従った手順を次に示します.
後は、docker イメージをビルドするだけです.
新しいイメージを好みの Docker レジストリーにプッシュします
最後に、k8s デプロイメントをクラスターに適用します.以下の
私の会社では、内部ドキュメントを作成し、git および Markdown ベースのドキュメント サービスで共有する方法を探しています.
これらの選択の背後にある理由は、(1) Markdown は使いやすく、すべての開発者がその使い方を知っているためです. (2) git ベースのサービスは、ドキュメントの変更を追跡し、変更をマージする前にプル リクエストと「ドキュメント レビュー」を使用して改善に同意するのに役立ちます.
いろいろ調べた結果、Facebook が作成した静的ドキュメント サイト ジェネレーター Docusaurus を使用することにしました.
これは React Native に基づいており、セットアップが完了すると、新しいドキュメント ページを送信したり、変更を加えたりするのが非常に簡単になるため、とても気に入っています.
しかし、最初に使い始めたとき、展開の問題に直面しました.私たちはドキュメンテーションを非公開に保ち、docusuarus チームが提案するサービス (Netlify、GitHub Pages など) を使用したくありませんでした.代わりに、プロキシと VPN 経由でアクセスできるように、独自の「dev」Kubernetes クラスターでホストすることにしました.
オンラインでこれを行う方法に関する情報が見つからなかったので、同じ問題に遭遇した場合に備えて、私が従った手順を次に示します.
導入手順
yarn, yarn build, yarn serve
(または npm
に相当するもの) を使用してローカルで実行できる docusuarus Web サイトが既にあると仮定します.FROM node:12.19.0-alpine
WORKDIR /app
COPY . /app
RUN yarn
RUN yarn build
ENTRYPOINT ["yarn", "run", "serve"]
yaml
を保存して調整し、単純に kubectl apply -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
Reference
この問題について(Docusaurus Web サイトを K8s にデプロイする方法), 我々は、より多くの情報をここで見つけました https://dev.to/aesadde/how-to-deploy-a-docusaurus-website-to-k8s-2p46テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol