GitLab製品ドキュメントをホストする
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
docs.gitlab.comでGitLab製品ドキュメントにアクセスできない場合は、代わりに自分でドキュメントをホストできます。
お使いのインスタンスのローカルヘルプには、すべてのドキュメントが含まれているわけではありません(たとえば、GitLab RunnerまたはGitLab Operatorのドキュメントは含まれていません)。また、検索や閲覧もできません。これは、インスタンス内から特定のページへの直接リンクのみをサポートすることを目的としています。
コンテナレジストリURL
必要なコンテナイメージのURLは、必要なGitLabドキュメントのバージョンによって異なります。次のセクションで使用するURLのガイドとして、次の表を参照してください。
| GitLabバージョン | コンテナレジストリ | コンテナイメージのURL |
|---|---|---|
| 17.8以降 | https://gitlab.com/gitlab-org/technical-writing/docs-gitlab-com/container_registry/8244403 | registry.gitlab.com/gitlab-org/technical-writing/docs-gitlab-com/archives:<version> |
| 15.5 - 17.7 | https://gitlab.com/gitlab-org/gitlab-docs/container_registry/3631228 | registry.gitlab.com/gitlab-org/gitlab-docs/archives:<version> |
| 10.3 - 15.4 | https://gitlab.com/gitlab-org/gitlab-docs/container_registry/631635 | registry.gitlab.com/gitlab-org/gitlab-docs:<version> |
ドキュメントのセルフホスティングオプション
GitLab製品ドキュメントをホストするには、次のものを使用できます:
- Dockerコンテナ
- GitLab Pages
- 独自のWebサーバー
次の例ではGitLab 17.8を使用していますが、GitLabインスタンスインスタンスに対応するバージョンを使用してください。
Dockerを使用した製品ドキュメントのセルフホスト
ドキュメントWebサイトは、コンテナ内のポート4000で提供されます。次の例では、これをホスト上の同じポートで公開します。
次のいずれかを確認してください:
- ファイアウォールでポート
4000を許可します。 - 別のポートを使用します。次の例では、左端の
4000を別のポート番号に置き換えます。
DockerコンテナでGitLab製品ドキュメントWebサイトを実行するには:
GitLabをホストするサーバー、またはGitLabインスタンスインスタンスが通信できる他のサーバーで:
プレーンDockerを使用する場合は、次を実行します:
docker run --detach --name gitlab_docs -it --rm -p 4000:4000 registry.gitlab.com/gitlab-org/technical-writing/docs-gitlab-com/archives:17.8Docker Composeを使用してGitLabインスタンスインスタンスをホストする場合は、既存の
docker-compose.yamlに次を追加します:version: '3.6' services: gitlab_docs: image: registry.gitlab.com/gitlab-org/technical-writing/docs-gitlab-com/archives:17.8 hostname: 'https://docs.gitlab.example.com:4000' ports: - '4000:4000'次に、変更をプルします:
docker-compose up -d
http://0.0.0.0:4000にアクセスしてドキュメントWebサイトを表示し、動作することを確認します。
GitLab Pagesを使用した製品ドキュメントのセルフホスト
GitLab Pagesを使用して、GitLab製品ドキュメントをホストできます。
前提要件:
- PagesサイトのURLがサブフォルダーを使用していないことを確認してください。サイトは事前にコンパイルされているため、CSSファイルとJavaScriptファイルは、メインドメインまたはサブドメインを基準にしています。たとえば、
https://example.com/docs/のようなURLはサポートされていません。
GitLab Pagesを使用して製品ドキュメントサイトをホストするには:
新しい
.gitlab-ci.ymlファイルを作成するか、既存のファイルを編集し、次のpagesジョブを追加して、バージョンがGitLabのインストールと同じであることを確認します:pages: image: registry.gitlab.com/gitlab-org/technical-writing/docs-gitlab-com/archives:17.8 script: - mkdir public - cp -a /usr/share/nginx/html/* public/ artifacts: paths: - publicオプション。GitLab Pagesドメイン名を設定します。GitLab PagesWebサイトのタイプに応じて、2つのオプションがあります:
Webサイトのタイプ デフォルトドメイン カスタムドメイン プロジェクトWebサイト サポートされていません サポート対象 ユーザーまたはグループWebサイト サポート対象 サポート対象
独自のWebサーバーでの製品ドキュメントのセルフホスト
作成するWebサイトは、インストールされているGitLabバージョン(たとえば、 17.8/)と一致するサブディレクトリにホストする必要があります。Dockerイメージは、デフォルトでこのバージョンを使用します。
製品ドキュメントサイトは静的なので、コンテナ内から/usr/share/nginx/htmlのコンテンツを取得し、独自のWebサーバーを使用して、必要な場所にドキュメントをホストできます。
htmlディレクトリはそのまま提供する必要があり、次の構造になっています:
├── 17.8/
├── index.htmlこの例では:
17.8/は、ドキュメントがホストされているディレクトリです。index.htmlは、ドキュメントを含むディレクトリにリダイレクトする単純なHTMLファイルです。この場合、17.8/。
ドキュメントサイトのHTMLファイルを抽出するには:
ドキュメントWebサイトのHTMLファイルを保持するコンテナを作成します:
docker create -it --name gitlab_docs registry.gitlab.com/gitlab-org/technical-writing/docs-gitlab-com/archives:17.8Webサイトを
/srv/gitlab/の下にコピーします:docker cp gitlab-docs:/usr/share/nginx/html /srv/gitlab/ドキュメントWebサイトを保持する
/srv/gitlab/html/ディレクトリになります。コンテナを削除します:
docker rm -f gitlab_docs/srv/gitlab/html/のコンテンツを提供するようにWebサーバーをポイントします。
新しいドキュメントサイトへの/helpリンクのリダイレクト
ローカル製品ドキュメントサイトが実行された後、ドキュメントURLとして完全修飾ドメイン名を使用して、GitLabアプリケーションのヘルプリンクをリダイレクトします。たとえば、Dockerメソッドを使用した場合は、 http://0.0.0.0:4000を入力します。
バージョンを追加する必要はありません。GitLabはそれを検出し、必要に応じてドキュメントURLリクエストに追加します。たとえば、GitLabバージョンが17.8の場合:
- GitLabドキュメントURLは
http://0.0.0.0:4000/17.8/になります。 - GitLabのリンクは
<instance_url>/help/administration/settings/help_page#destination-requirementsとして表示されます。 - リンクを選択すると、
http://0.0.0.0:4000/17.8/administration/settings/help_page/#destination-requirementsにリダイレクトされます。
設定をテストするには、GitLabで詳細リンクを選択します。次に例を示します:
- 左側のサイドバーで、自分のアバターを選択します。
- 設定を選択します。
- 構文ハイライトのテーマセクションで、詳細を選択します。
GitLab製品ドキュメントを以降のバージョンにアップグレード
ドキュメントサイトを以降のバージョンにアップグレードするには、新しいDockerイメージタグをダウンロードする必要があります。
Dockerを使用したアップグレード
以降のバージョンにアップグレードするには、Dockerを使用します:
Dockerを使用する場合:
実行中のコンテナを停止します:
sudo docker stop gitlab_docs既存のコンテナを削除します:
sudo docker rm gitlab_docs新しいイメージをプルします。例:17.8:
docker run --detach --name gitlab_docs -it --rm -p 4000:4000 registry.gitlab.com/gitlab-org/technical-writing/docs-gitlab-com/archives:17.8
Docker Composeを使用する場合:
docker-compose.yamlのバージョンを変更します(たとえば、17.8):version: '3.6' services: gitlab_docs: image: registry.gitlab.com/gitlab-org/technical-writing/docs-gitlab-com/archives:17.8 hostname: 'https://docs.gitlab.example.com:4000' ports: - '4000:4000'変更をプルします:
docker-compose up -d
GitLab Pagesを使用したアップグレード
以降のバージョンにアップグレードするには、GitLab Pagesを使用します:
既存の
.gitlab-ci.ymlファイルを編集し、imageバージョン番号を置き換えます:image: registry.gitlab.com/gitlab-org/technical-writing/docs-gitlab-com/archives:17.8変更をコミットし、プッシュすると、GitLab Pagesは新しいドキュメントサイトバージョンをプルします。
独自のWebサーバーを使用したアップグレード
以降のバージョンにアップグレードするには、独自のWebサーバーを使用します:
ドキュメントサイトのHTMLファイルをコピーします:
docker create -it --name gitlab_docs registry.gitlab.com/gitlab-org/technical-writing/docs-gitlab-com/archives:17.8 docker cp gitlab_docs:/usr/share/nginx/html /srv/gitlab/ docker rm -f gitlab_docsオプション。古いサイトを削除します:
rm -r /srv/gitlab/html/17.8/
トラブルシューティング
検索が機能しない
ローカル検索は、バージョン15.6以降に含まれています。以前のバージョンを使用している場合、検索は機能しません。
詳細については、GitLabドキュメントが使用しているさまざまな種類の検索についてお読みください。
Dockerイメージが見つかりません
Dockerイメージが見つからないというエラーが表示された場合は、正しいレジストリURLを使用しているかどうかを確認してください。
Dockerでホストされているドキュメントサイトのリダイレクトに失敗する
macOS上のDockerでGitLabドキュメントをプレビューすると、ドキュメントへのリダイレクトを妨げるイシューが発生し、 If you are not redirected automatically, click here.というメッセージが表示されることがあります
リダイレクトをエスケープするには、 http://127.0.0.0.1:4000/16.8/のように、URLにバージョン番号を追加する必要があります。