この章では、dockerを利用してGitLabをインストールする方法をご紹介します。
実行環境
- ホストOS: Ubuntu18.04 (bash)
- コンテナOS: Ubuntu20.04 (use docker)
- docker version: 20.10.6
- GitLab-CE version: 13.11.3-ce.0
Install 手順
dockerイメージを構築
はじめに、Dockerfileを準備します。公式で用意されているdockerイメージがありますが、提供されているコンテナOSがUbuntu16.04のため、一から構築します。
Dockerfile
FROM ubuntu:20.04
# Set up ubuntu
ENV DEBIAN_FRONTEND=noninteractive
RUN set -x \
&& apt-get update && apt-get upgrade -y \
&& apt-get install -y --no-install-recommends \
tzdata \
language-pack-ja \
wget \
curl \
ca-certificates \
git \
neovim \
&& update-locale LANG=ja_JP.UTF-8 \
&& apt-get -y clean \
&& rm -rf /var/lib/apt/lists/*
ENV TZ Asia/Tokyo
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
# Install required packages & gitlab-ce
ENV DEBIAN_FRONTEND=noninteractive
RUN set -x \
&& apt-get update \
&& curl -SL https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash \
&& apt-get install -y --no-install-recommends \
openssh-server \
perl \
postfix \
gitlab-ce=13.11.3-ce.0 \
&& apt-get -y clean \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /root
次に作成したdockerfileからdockerイメージを構築します。以下のコマンドをshellで実行してください。構築したdockerイメージの容量は約2.5GBになります。
docker build -t gitlab-ce/ubuntu20.04:13.11.3-ce.0 .
dockerコンテナを構築
dockerはコンテナを立ち上げるときに、ホストOSとの共有フォルダを設定することができます。GitLabに蓄積されたデータをバックアップ・リストアしやすいように、共有フォルダを設定するようにしましょう。ここでは環境変数を設定した上で、コンテナを立ち上げています。
export GITLAB_HOME=$HOME/gitlab
mkdir -p $GITLAB_HOME
docker run -it \
-p 443:443 -p 80:80 -p 22:22 \
--name gitlab-ce \
--restart always \
-v $GITLAB_HOME/config:/etc/gitlab \
-v $GITLAB_HOME/logs:/var/log/gitlab \
-v $GITLAB_HOME/data:/var/opt/gitlab \
gitlab-ce/ubuntu20.04:13.11.3-ce.0 \
/bin/bash
GitLabの構築と起動
GitLabには、root
権限を持つユーザーが実行できるgitlab-ctl
と呼ばれる管理コマンドがあります。このコマンドを使用してGitLabを起動します。構築したdockerコンテナ内で次のコマンドを実行してください。
gitlab-ctl reconfigure
gitlab-ctl start
GitLabの起動を確認
defaultでは、http://localhost:80
からGitLabへアクセスできるようになっています。ブラウザから上記URLにアクセスすると管理者用パスワードの登録が求められるので、8文字以上の文字列を入力し登録してください。登録後、GitLabのログイン画面に自動遷移するので、ログインできるか確認してみてください。管理者のユーザ名はroot
です。これで導入は完了です。