GitLab là trình quản lý kho lưu trữ mã nguồn mở dựa trên Rails do GitLab Inc. phát triển. Đây là trình quản lý kho lưu trữ git dựa trên web cho phép nhóm của bạn cộng tác mã hóa, thử nghiệm và triển khai ứng dụng. GitLab cung cấp một số tính năng, bao gồm wiki, theo dõi sự cố, đánh giá mã và nguồn cấp dữ liệu hoạt động.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt GitLab bằng Docker và Docker Compose. Ngoài ra, chúng tôi sẽ sử dụng Ubuntu 20.04 làm hệ điều hành chính và cài đặt docker từ kho lưu trữ Ubuntu FocalFossa chính thức.
Điều kiện tiên quyết
Cập nhật tất cả các kho lưu trữ lên phiên bản mới nhất và cài đặt docker và docker-compose bằng lệnh apt bên dưới.
Sau khi hoàn tất quá trình cài đặt, hãy khởi động dịch vụ docker và thêm dịch vụ này vào hệ thống khởi động.
Tiếp theo, hãy kiểm tra dịch vụ docker bằng lệnh systemctl bên dưới.
Kết quả là dịch vụ docker đã hoạt động trên Ubuntu 20.04 Server.
Để xác minh cài đặt docker, hãy chạy lệnh docker "hello-world" bên dưới.
Bây giờ bạn sẽ nhận được thông báo "hello-world" từ docker như bên dưới.
Bây giờ chúng ta đã sẵn sàng cài đặt GitLab bằng docker container và docker-compose.
Tạo một thư mục mới có tên là 'gitlab' và truy cập vào đó.
Thư mục "gitlab" sẽ được sử dụng để lưu trữ tất cả tập lệnh docker và cấu hình cho GitLab.
Tạo một thư mục dữ liệu GitLab mới "/srv/gitlab" bằng lệnh mkdir bên dưới.
Tiếp theo, trên thư mục dự án "gitlab", hãy tạo một tệp ".env" mới bằng trình soạn thảo vim.
Định nghĩa biến môi trường "GITLAB_HOME" với giá trị là thư mục dữ liệu GitLab "/srv/gitlab" như bên dưới.
Lưu và đóng.
Tập lệnh docker-compose.yml sẽ sử dụng biến môi trường cho các ổ đĩa Gitlab.
Tạo tệp 'docker-compose.yml' mới bằng lệnh vim bên dưới.
Xác định dịch vụ có tên "web" với hình ảnh phiên bản mới nhất của "gitlab-ce" và thay đổi "hostname" bằng tên miền GitLab của bạn.
Cấu hình môi trường cho cài đặt Gitlab của bạn như bên dưới. Và hãy đảm bảo thay đổi "external_url" bằng giao thức bảo mật HTTPS và thay đổi "gitlab_rails['gitlab_shell_ssh_port']" bằng cổng SSH thay thế cho vùng chứa của bạn.
Tiếp theo, định nghĩa các cổng cho vùng chứa GitLab như bên dưới. Và hãy đảm bảo thay đổi cổng SSH "2224" bằng cổng tùy chỉnh của bạn và khớp với cổng "gitlab_shell_ssh_port" ở trên cùng.
Sau đó, hãy xác định ổ đĩa hoặc thư mục dữ liệu GitLab của bạn. Tất cả các thư mục dữ liệu GitLab đều có sẵn tại thư mục "GITLAB_HOME", nơi đặt biến môi trường trên tệp ".env" ở trên cùng.
Lưu và đóng.
Dưới đây là cấu hình đầy đủ.
Kết quả là tập lệnh "docker-compose.yml" để cài đặt dự án GitLab đã được tạo.
Trên máy chủ của bạn, hãy cài đặt công cụ certbot bằng lệnh apt bên dưới.
Sau đó, tạo chứng chỉ SSL cho GitLab sử dụng lệnh certbot bên dưới.
Sau khi hoàn tất, chứng chỉ của bạn sẽ có tại thư mục '/etc/letsencrypt/live/gitlab.yourdomain'.
Bây giờ hãy sao chép tệp chứng chỉ "fullchain.pem" và "privkey.pem" vào thư mục "/srv/gitlab/config/ssl/".
Và SSL Letsencrypt cho GitLab đã sẵn sàng.
Tiếp theo, tạo chứng chỉ DHPARAM "dhparam.pem" bằng lệnh openssl bên dưới.
Và tất cả các chứng chỉ để cài đặt GitLab đã được tạo và chúng ta đã sẵn sàng để xây dựng vùng chứa GitLab.
Trước khi thực hiện các bước tiếp theo, bạn có thể kiểm tra tất cả các tệp có sẵn trên thư mục dự án "gitlab" và cấu trúc thư mục của thư mục Dữ liệu GitLab.
Dưới đây là kết quả bạn sẽ nhận được.
Tiếp theo, hãy đến thư mục dự án "~/gitlab" và xây dựng vùng chứa GitLab bằng lệnh "docker-compose" bên dưới.
Sau khi hoàn tất, bạn sẽ nhận được kết quả như bên dưới.
Bây giờ hãy kiểm tra vùng chứa đang chạy và các cổng "LISTEN" trên hệ thống Ubuntu của bạn bằng lệnh sau.
Và bạn sẽ nhận được vùng chứa "gitlab_web_1" đã hoạt động và bạn có cổng HTTP, HTTPS và SSH "2224" được vùng chứa GitLab sử dụng.
Như có thể đã thấy, vùng chứa GitLab đã hoạt động và chúng ta đã sẵn sàng để thiết lập cài đặt GitLab.
https://gitlab.hakase-labs.io/
Và bạn sẽ nhận được trang đặt lại mật khẩu GitLab.
Nhập mật khẩu mới cho người dùng mặc định "root" và nhấp vào nút "Thay đổi mật khẩu".
Bây giờ bạn sẽ nhận được trang đăng nhập GitLab như bên dưới.
Đăng nhập bằng người dùng mặc định "root" và mật khẩu mới của bạn, sau đó nhấp vào "Đăng nhập".
Và bạn sẽ nhận được Bảng điều khiển GitLab như bên dưới.
Như có thể thấy, cài đặt GitLab sử dụng docker và docker-compose đã hoàn tất.
Trước khi đi xa hơn, hãy đến thư mục dự án "~/gitlab" và kiểm tra trạng thái của vùng chứa bằng lệnh sau.
Bạn sẽ nhận được thông báo vùng chứa GitLab đã hoạt động.
Dưới đây là kết quả bạn sẽ nhận được.
Như có thể thấy, tất cả các thành phần dịch vụ GitLab đều đã hoạt động.
Bây giờ hãy kiểm tra phiên bản Ubuntu mặc định của container GitLab.
Bạn sẽ nhận được container GitLab dựa trên Ubuntu 16.04 Xenial.
Bây giờ hãy nhập "exit" để đăng xuất khỏi container GitLab.
Chỉnh sửa cấu hình "/etc/gitlab/gitlab.rb" bên trong container bằng lệnh docker bên dưới.
Bây giờ bạn sẽ thấy trình soạn thảo "nano" mặc định trên màn hình, với tệp cấu hình "gitlab.rb".
Nhập cấu hình của bạn, lưu và thoát.
Tiếp theo, để áp dụng các thay đổi mới cho GitLab, hãy khởi động lại dịch vụ vùng chứa Gitlab bằng lệnh bên dưới.
Bây giờ hãy đảm bảo không có lỗi, hãy kiểm tra trạng thái vùng chứa GitLab bằng lệnh sau.
Bây giờ hãy đảm bảo cotainer GitLab ở trạng thái "Up (healty)".
Kết quả là, cấu hình mới cho GitLab đã được áp dụng.
Và cuối cùng, quá trình cài đặt GitLab bằng docker và docker-compose đã hoàn tất thành công.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt GitLab bằng Docker và Docker Compose. Ngoài ra, chúng tôi sẽ sử dụng Ubuntu 20.04 làm hệ điều hành chính và cài đặt docker từ kho lưu trữ Ubuntu FocalFossa chính thức.
Điều kiện tiên quyết
- Ubuntu Server 20.04
- RAM tối thiểu 4GB
- Quyền root
- Cài đặt Docker và Docker Compose
- Thiết lập Dự án GitLab Docker
- Xây dựng một Container GitLab
- GitLab Post Installation
Bước 1 - Cài đặt Docker và Docker Compose
Đầu tiên, chúng ta sẽ cài đặt các gói docker và docker-compose vào hệ thống Ubuntu 20.04 của mình. Và chúng tôi sẽ sử dụng các gói docker được cung cấp bởi kho lưu trữ Ubuntu FocalFossa chính thức.Cập nhật tất cả các kho lưu trữ lên phiên bản mới nhất và cài đặt docker và docker-compose bằng lệnh apt bên dưới.
Mã:
sudo apt update
sudo apt install docker.io containerd docker-compose
Mã:
systemctl start docker
systemctl enable docker
Mã:
systemctl status docker
Để xác minh cài đặt docker, hãy chạy lệnh docker "hello-world" bên dưới.
Mã:
docker run hello-world
Bây giờ chúng ta đã sẵn sàng cài đặt GitLab bằng docker container và docker-compose.
Bước 2 - Thiết lập thư mục GitLab
Trong bước này, chúng ta sẽ thiết lập thư mục dự án của mình để cài đặt GitLab.Tạo một thư mục mới có tên là 'gitlab' và truy cập vào đó.
Mã:
mkdir -p gitlab; cd gitlab/
Tạo Thư mục Dữ liệu GitLab và Tệp .env
Trong phần này, chúng ta sẽ tạo một thư mục mới để lưu trữ tất cả dữ liệu GitLab của mình và tạo một tệp ".env" mới sẽ được docker sử dụng.Tạo một thư mục dữ liệu GitLab mới "/srv/gitlab" bằng lệnh mkdir bên dưới.
Mã:
mkdir -p /srv/gitlab/{config/ssl,logs,data}
Mã:
vim .env
Mã:
GITLAB_HOME=/srv/gitlab
Tập lệnh docker-compose.yml sẽ sử dụng biến môi trường cho các ổ đĩa Gitlab.
Tạo tập lệnh docker-compose.yml
Tiếp theo, chúng ta sẽ tạo một "docker-compose.yml" mới sẽ được sử dụng để xây dựng vùng chứa GitLab của chúng ta.Tạo tệp 'docker-compose.yml' mới bằng lệnh vim bên dưới.
Mã:
vim docker-compose.yml
Mã:
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'gitlab.hakase-labs.io'
Mã:
environment:
GITLAB_OMNIBUS_CONFIG: |
# Thêm bất kỳ cấu hình gitlab.rb nào khác tại đây, mỗi cấu hình trên một dòng riêng
external_url 'https://gitlab.hakase-labs.io'
gitlab_rails['gitlab_shell_ssh_port'] = 2224
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"
Mã:
ports:
- '80:80'
- '443:443'
- '2224:22'
Mã:
volumes:
- '${GITLAB_HOME}/config:/etc/gitlab'
- '${GITLAB_HOME}/logs:/var/log/gitlab'
- '${GITLAB_HOME}/data:/var/opt/gitlab'
- '${GITLAB_HOME}/config/ssl:/etc/gitlab/ssl'
Dưới đây là cấu hình đầy đủ.
Mã:
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'gitlab.hakase-labs.io'
environment:
GITLAB_OMNIBUS_CONFIG: |
# Thêm bất kỳ cấu hình gitlab.rb nào khác ở đây, mỗi cấu hình trên một dòng riêng
external_url 'https://gitlab.hakase-labs.io'
gitlab_rails['gitlab_shell_ssh_port'] = 2224
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"
ports:
- '80:80'
- '443:443'
- '2224:22'
volumes:
- '${GITLAB_HOME}/config:/etc/gitlab'
- '${GITLAB_HOME}/logs:/var/log/gitlab'
- '${GITLAB_HOME}/data:/var/opt/gitlab'
- '${GITLAB_HOME}/config/ssl:/etc/gitlab/ssl'
Tạo chứng chỉ SSL và DHAPARAM
Trong giai đoạn này, chúng ta sẽ tạo SSL Letsencrypt cho cài đặt GitLab của mình.Trên máy chủ của bạn, hãy cài đặt công cụ certbot bằng lệnh apt bên dưới.
Mã:
sudo apt install certbot
Mã:
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [emailprotected] -d gitlab.hakase-labs.io
Bây giờ hãy sao chép tệp chứng chỉ "fullchain.pem" và "privkey.pem" vào thư mục "/srv/gitlab/config/ssl/".
Mã:
cp /etc/letsencrypt/live/gitlab.hakase-labs.io/fullchain.pem /srv/gitlab/config/ssl/
cp /etc/letsencrypt/live/gitlab.hakase-labs.io/privkey.pem /srv/gitlab/config/ssl/
Tiếp theo, tạo chứng chỉ DHPARAM "dhparam.pem" bằng lệnh openssl bên dưới.
Mã:
sudo openssl dhparam -out /srv/gitlab/config/ssl/dhparams.pem 2048
Bước 3 - Xây dựng vùng chứa GitLab
Trong bước này, chúng ta sẽ xây dựng vùng chứa GitLab của mình bằng tất cả các cấu hình đã tạo ở trên cùng và sử dụng lệnh docker-compose.Trước khi thực hiện các bước tiếp theo, bạn có thể kiểm tra tất cả các tệp có sẵn trên thư mục dự án "gitlab" và cấu trúc thư mục của thư mục Dữ liệu GitLab.
Mã:
ls -lah ~/gitlab/
tree /srv/gitlab
Tiếp theo, hãy đến thư mục dự án "~/gitlab" và xây dựng vùng chứa GitLab bằng lệnh "docker-compose" bên dưới.
Mã:
cd ~/gitlab
docker-compose up -d
Bây giờ hãy kiểm tra vùng chứa đang chạy và các cổng "LISTEN" trên hệ thống Ubuntu của bạn bằng lệnh sau.
Mã:
docker-compose ps
ss -plnt
Như có thể đã thấy, vùng chứa GitLab đã hoạt động và chúng ta đã sẵn sàng để thiết lập cài đặt GitLab.
Bước 4 - Cài đặt GitLab sau
Mở trình duyệt web của bạn và nhập URL cài đặt GitLab của bạn vào thanh địa chỉ.https://gitlab.hakase-labs.io/
Và bạn sẽ nhận được trang đặt lại mật khẩu GitLab.
Nhập mật khẩu mới cho người dùng mặc định "root" và nhấp vào nút "Thay đổi mật khẩu".
Bây giờ bạn sẽ nhận được trang đăng nhập GitLab như bên dưới.
Đăng nhập bằng người dùng mặc định "root" và mật khẩu mới của bạn, sau đó nhấp vào "Đăng nhập".
Và bạn sẽ nhận được Bảng điều khiển GitLab như bên dưới.
Như có thể thấy, cài đặt GitLab sử dụng docker và docker-compose đã hoàn tất.
Bước 5 - Cấu hình cơ bản cho GitLab Container
Sau khi cài đặt GitLab, bạn có thể thêm một số cấu hình bổ sung vào GitLab container mà không cần phá hủy GitLab container. Đối với bước này, chúng tôi sẽ chỉ cho bạn cách cơ bản để quản lý GitLab container.Trước khi đi xa hơn, hãy đến thư mục dự án "~/gitlab" và kiểm tra trạng thái của vùng chứa bằng lệnh sau.
Mã:
cd ~/gitlab
docker-compose ps
Kiểm tra Trạng thái Dịch vụ GitLab bên trong Vùng chứa
Để kiểm tra tất cả các dịch vụ GitLab bên trong vùng chứa Gitlab, hãy sử dụng lệnh "docker exec" như bên dưới.
Mã:
sudo docker exec -it gitlab_web_1 gitlab-ctl status
Như có thể thấy, tất cả các thành phần dịch vụ GitLab đều đã hoạt động.
Truy cập Vùng chứa GitLab
Để SSH vào vùng chứa GitLab, bạn sử dụng "docker exec" với shell "bash" bên trong container như bên dưới.
Mã:
sudo docker exec -it gitlab_web_1 /bin/bash
Mã:
cat /etc/lsb-release
Bây giờ hãy nhập "exit" để đăng xuất khỏi container GitLab.
Chỉnh sửa Cấu hình GitLab gitlab.rb
Tiếp theo, để thay đổi cấu hình GitLab bên trong container, bạn có thể sử dụng "trình chỉnh sửa" mặc định trên chính container docker.Chỉnh sửa cấu hình "/etc/gitlab/gitlab.rb" bên trong container bằng lệnh docker bên dưới.
Mã:
sudo docker exec -it gitlab_web_1 editor /etc/gitlab/gitlab.rb
Nhập cấu hình của bạn, lưu và thoát.
Tiếp theo, để áp dụng các thay đổi mới cho GitLab, hãy khởi động lại dịch vụ vùng chứa Gitlab bằng lệnh bên dưới.
Mã:
sudo docker restart gitlab_web_1
Mã:
sudo docker-compose ps
Kết quả là, cấu hình mới cho GitLab đã được áp dụng.
Và cuối cùng, quá trình cài đặt GitLab bằng docker và docker-compose đã hoàn tất thành công.