1. Cài đặt gitlab
Bước 1. Tạo file docker-compose.yaml
Tạo một thư mục mới cho dự án, và tạo file docker-compose.yaml
version: '3.8'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
container_name: gitlab
restart: always
hostname: 'gitlab.local'
environment:
GITLAB_OMNIBUS_CONFIG: |
gitlab_rails['gitlab_shell_ssh_port'] = 2222
external_url 'http://gitlab.local'
### SMTP config for Gmail
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "your_app_password"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_from'] = '[email protected]'
gitlab_rails['gitlab_email_reply_to'] = '[email protected]'
gitlab_rails['gitlab_email_display_name'] = 'GitLab'
ports:
- '80:80'
- '443:443'
- '2222:22'
volumes:
- '/opt/gitlab/config:/etc/gitlab'
- '/opt/gitlab/logs:/var/log/gitlab'
- '/opt/gitlab/data:/var/opt/gitlab'
networks:
gitlab-network:
aliases:
- gitlab.local
networks:
gitlab-network:
external: true
name: gitlab-network
image: gitlab/gitlab-ce:latest:Sử dụng image GitLab Community Edition mới nhất từ Docker Hubport:Mở các cổng cần thiết truy cập Gitlab (80cho HTTP,443cho HTTPS,22cho SSH), cổng22được ánh xạ sang2222trên local để tránh xung đột.volume:Giúp lưu trữ dữ liệu, cấu hình và logs của Gitlab bên ngoài container, đảm bảo dữ liệu không bị mất khi container bị xóaenviroment:Thiết lập các biến môi trường cho Gitlab, bao gồm cổng SSH và URL truy cập
Bước 2. Chạy Gitlab Container
Mở Terminal hoặc Command Prompt, di chuyển đến thư mục chưa file docker-compose.yaml chạy lệnh:
docker-compose up -d
Lệnh này sẽ tải image Gitlab, tạo và khởi chạy container trong chế độ nền (-d).
Bước 3. Truy cập vào Gitlab
Truy cập vào gitlab qua URL: http://localhost.
Trỏ file hosts để có thể truy cập vào gitlab qua địa chỉ: http://gitlab.local

2. Hướng dẫn cấu hình gitlab
1. Cấu hình lần đầu.
– Đổi mật khẩu cho tài khoản root. Khi đăng nhập lần đầu tiên vào gitlab, hệ thống sẽ yêu cầu bạn đặt lại mật khẩu cho tài khoản admin (mặc định là root)
– Truy cập vào giao diện Admin để quản lý gitlab. Hãy nhập vào biểu tượng cờ lê và có chứ Admin Area để vào giao diện Admin

Cấu hình gửi mail trong Gitlab
2. Quản lý Người dùng (Users)
– Tạo người dùng mới.
- Trong mục Admin Area, Chọn Overview -> User

- Nhấp vào nút New User


Gitlab sẽ tự gửi 1 link đổi mật khẩu đến cho user vào địa chỉ email của user.
- Phân quyền cho người sử dụng (Regular hoặc Administrator)
- Nhấp vào Create user
3. Quản lý Nhóm (Groups)
- Mục đích: Group trong GitLab là nơi để gom các project lại với nhau và quản lý quyền truy cập cho nhiều người dùng cùng một lúc.
- Tạo nhóm mới:
Trong Admin Area hoặc ở màn hình chính, Overview -> Group nhấp vào nút New group.

Nhập đường dẫn URL (group URL) và mô tả (description).

Thiết lập Visibility level (cấp độ hiển thị) cho nhóm:
– Private: Chỉ những thành viên trong nhóm mới có thể xem.
– Internal: Tất cả người dùng GitLab có thể xem.
– Public: Bất kỳ ai cũng có thể xem, kể cả những người không có tài khoản.

Nhấp Create group.
- Thêm thành viên vào nhóm:

Vào nhóm vừa tạo, chọn Group information > Members -> Manager Access
Nhấp vào Invite members.

Tìm kiếm và chọn người dùng bạn muốn thêm.

Chọn quyền truy cập (role) cho người dùng đó (ví dụ: Developer, Maintainer, Owner).
Nhấp Invite.
4. Quản lý Dự án (Projects)
- Tạo dự án mới:
Ở màn hình Admin Area, Overview -> Projects nhấp vào nút New project.

Chọn Create blank project.

- Điền tên dự án, mô tả và chọn Group mà dự án sẽ thuộc về.
- Chọn Visibility level tương tự như khi tạo nhóm.
- Tích chọn ‘Initialize repository with a README’ để tạo sẵn một file
README.md.

Nhấp Create project.
Thêm thành viên vào dự án:
Vào dự án vừa tạo, chọn Project information > Members.

Hoặc vào Manage -> Members

Nhấp vào Invite members.

Tìm kiếm người dùng và phân quyền cho họ.
Nhấp Invite.
3. Cài đặt Gitlab Runner
Bước 1. Tạo file docker-compose.yaml cho Runner
version: '3.8'
gitlab-runner:
image: 'gitlab/gitlab-runner:latest'
container_name: gitlab-runner
restart: always
depends_on:
- gitlab
volumes:
- '/opt/gitlab-runner/config:/etc/gitlab-runner'
- '/var/run/docker.sock:/var/run/docker.sock'
networks:
- gitlab-network
networks:
gitlab-network:
external: true
name: gitlab-network
depends_on: - gitlab: Đảm bảo container GitLab đã chạy trước khi GitLab Runner được khởi động.volumes: Mount thư mục cấu hình vàdocker.sockđể Runner có thể chạy các job Docker bên trong các container khác.networks: Kết nối Runner vào cùng mạng với GitLab để chúng có thể giao tiếp với nhau. Tên mạng sẽ làtên-thư-mục-chứa-docker-compose-gitlab_gitlab-network.
Cài đặt
docker-compose up -d
Có thể gộp 2 file docker-compose.yaml làm 1 để chạy 1 lần cài cả gitlab và gitlab-runner.
Bước 2. Đăng ký Runner
Đăng nhập vào GitLab và đi đến: Admin Area > CI/CD > Runners.

Click vào Create Instance Runner

Tại đây, bạn nhập tags, Descriptions và bấm Create Runner

Chọn Platform và gõ lệnh theo hướng dẫn vào máy cài gitlab-runner

Tuy nhên gitlab-runner trong bài lab này được cài từ docker nên lệnh có sự thay đổi một chút như sau:
cd <thu muc chua file docker-compose>
docker-compose run --rm gitlab-runner register --url http://gitlab.local --token TOKEN_DUOC_TAO_RA

Đến đây là đã thành công đăng ký gitlab-runner
