Skip to content

GitLabへのMkdocs簡易設定

  • mkdocsで生成したwebドキュメントを、Pages機能を使わずに、ダイレクトにnginxに配置する

A1. mkdocksインストール

# apt install python3
# apt install python3-pip
# pip3 install mkdocs
# pip3 install mkdocs-material

A2. GitLabとnginxの設定

# vi /etc/gitlab/gitlab.rb
# vi /etc/nginx/conf.d/blog.morifuku.net.conf
# gitlab-ctl reconfigure
# gitlab-ctl restart

  • gitlab.rbは以下の設定を行う。コメントアウトを外して有効化して、変更する。
nginx['custom_nginx_config'] = "include /etc/nginx/conf.d/blog.morifuku.net.conf;"

  • blog.morifuku.net.confは以下の設定をおこなう。SSLの証明書も設定しておく。
server {
    listen 443 ssl;
    server_name blog.morifuku.net;

    ssl_certificate /etc/letsencrypt/archive/blog.morifuku.net/fullchain1.pem;
    ssl_certificate_key /etc/letsencrypt/archive/blog.morifuku.net/privkey1.pem;
    ssl_protocols TLSv1.2 TLSv1.3;

    root /var/www/blog.morifuku.net;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

A3 パイプラインの設定

stages:
  - build

build-job:
  stage: build
  rules:
    - if: $CI_COMMIT_BRANCH == "main"
      when: always
    - when: never
  script:
    - mkdocs build
    - cp -r ./site/* /var/www/blog.morifuku.net/
  • パイプライン処理で /var/www下にwebコンテンツをダイレクトに配置する
  • パイプライン処理は gitlab-runner が実行するので、 gitlab-runnerが配置できるようにパーミッションを設定しておく。