Gitlab một trong những phần mềm được sử dụng phổ biến để quản lý mã nguồn. Dù là cá nhân, tổ chức hay doanh nghiệp cũng nên sớm tìm hiểu và ứng dụng. Gitlab được biết đến là một phần mềm phổ biến được dùng để quản lý source code, nó cho phép các tổ chức hay cá nhân có thể lưu trữ và quản lý mã nguồn một cách dễ dàng thông qua kết nối internet. Trong bài viết dưới đây, mình sẽ hướng dẫn các bạn cài đặt Gitlab lên server của mình nhé.
1. Cài đặt bằng gói
Update hệ thống
apt update
Cài đặt một số thành phần bổ sung
apt install -y ca-certificates curl openssh-server tzdata
Thêm repo của Gitlab bằng script dưới
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash
Verify lại repo của đã được thêm
cat /etc/apt/sources.list.d/gitlab_gitlab-ce.list
Cài đặt Gitlab
apt install gitlab-ce -y
Ràng buộc domain với gitlab.hoanghd.com là domain sẽ sử dụng để truy cập gitlab
sed -i 's|external_url .*|external_url 'http://gitlab.hoanghd.com'|' /etc/gitlab/gitlab.rb
Nếu bạn muốn thay đổi port truy cập web interface ta sử dụng command dưới
sed -i 's|listen.*|listen *:80|' /var/opt/gitlab/nginx/conf/gitlab-http.conf
Đừng quên khởi động lại gitlab
gitlab-ctl restart
Thực hiện reconfigure và kiểm tra lại status gitlab
gitlab-ctl reconfigure
/opt/gitlab/embedded/bin/runsvdir-start & gitlab-ctl reconfigure
gitlab-ctl status
Command dưới dùng để lấy mật khẩu root của Gitlab.
cat /etc/gitlab/initial_root_password
Dùng trình duyệt để truy cập theo url đã define http://gitlab.hoanghd.com với username là root và password vừa lấy được ở bước trên
2. Cài đặt bằng Docker.
Nếu chạy bằng docker, đơn giản bạn hãy chạy lệnh dưới, hãy thay thế các thông tin theo ý muốn của bạn nhé.
docker run --detach \
--hostname gitlab.hoanghd.com \
--publish 20443:443 --publish 2080:80 --publish 2022:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
--network=networt_name \
gitlab/gitlab-ce:latest
Sau khi chạy lệnh trên xong, các bạn chờ khoảng 5 phút để quá trình build được hoàn thành. Sau khi build xong hãy sử dụng lệnh docker ps để xem thông tin.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5a013f6e905b gitlab/gitlab-ce:latest "/assets/wrapper" 4 seconds ago Up 2 seconds (health: starting) 0.0.0.0:2022->22/tcp, :::2022->22/tcp, 0.0.0.0:2080->80/tcp, :::2080->80/tcp, 0.0.0.0:20443->443/tcp, :::20443->443/tcp gitlab
Hãy sử dụng trình duyệt web login theo url http://<ip_server>:2080
Để lấy thông tin mật khẩu root, sử dụng lệnh dưới
$ docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
Password: yzKQ4JBp7/Xi/ZesPVZeNixAV9Y69n6bzTX369APots=
3. Cài đặt bằng Docker Compose..
Ta có thể sử dụng file YAML để khai báo các thông tin tương tự như trong lệnh docker run. Ví dụ:
version: "3"
services:
gitlab:
container_name: gitlab
image: gitlab/gitlab-ce:latest
hostname: gitlab.hoanghd.com
ports:
- "20443:443"
- "2080:80"
- "2022:22"
volumes:
- /srv/gitlab/config:/etc/gitlab
- /srv/gitlab/logs:/var/log/gitlab
- /srv/gitlab/data:/var/opt/gitlab
restart: always
networks:
- network_name
networks:
network_name:
Trong file docker-compose.yaml này, ta có một service gitlab được định nghĩa với các thông số tương tự như trong lệnh docker run, bao gồm:
- container_name: tên của container
- image: tên image và phiên bản của Gitlab CE
- hostname: hostname của container
- ports: các cổng mà container sử dụng
- volumes: các mount point được sử dụng
- restart: chế độ khởi động container khi có lỗi xảy ra
- networks: tên mạng mà container được kết nối
Ngoài ra, ta có định nghĩa network network_name để sử dụng cho container.
Sau khi tạo file docker-compose này, ta có thể sử dụng lệnh sau để chạy container:
docker-compose up -d
Lưu ý, nếu bạn đã có container đang chạy với tên gitlab thì nên dừng và xóa container đó trước khi sử dụng docker-compose up để chạy lại container mới.