AdSense

網頁

2020/11/28

Mac Docker 安裝GitLab

在macOS上安裝GitLab。

範例環境:

  • macOS Catalina
  • Docker 19.03.12

開啟終端機(terminal)在家(home)目錄$HOME下建立gitlab資料夾。執行$ mkdir -p $HOME/gitlab

$ mkdir -p $HOME/gitlab

使用export GITLAB_HOME=$HOME/gitlab建立新的環境變數GITLAB_HOME並將值設為剛建立的資料夾。

$ export GITLAB_HOME=$HOME/gitlab

這個gitlab資料夾將用來儲存gitlab container的應用程式資料(datas),日誌(logs)及配置(config)。


輸入docker pull gitlab/gitlab-ce:latest下載gitlab-ce(community edition)最新的docker映像檔。

$ docker pull gitlab/gitlab-ce:latest
latest: Pulling from gitlab/gitlab-ce
2c11b7cecaa5: Pull complete
04637fa56252: Pull complete
d6e6af23a0f3: Pull complete
b4a424de92ad: Pull complete
75041ace1dd9: Pull complete
6f66e95a59c5: Pull complete
670d62522835: Pull complete
6efec181708a: Pull complete
204a185650aa: Pull complete
cca308599e5c: Pull complete
Digest: sha256:0fc33960add09c3a7e1ef672747930a865552c4b3577283f731a2ce5d31ee2c4
Status: Downloaded newer image for gitlab/gitlab-ce:latest
docker.io/gitlab/gitlab-ce:latest

輸入docker images檢視剛下載的gitlab-ce映像檔。

$ docker images
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
gitlab/gitlab-ce                   latest              9a53eb68aeeb        4 days ago          2.07GB

輸入下面指令運行gitlab container

docker run --detach \
  --hostname gitlab.demo.com \
  --publish 10443:443 --publish 10080:80 --publish 10022:22 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest

參數說明:

  • --detach:以背景模式執行。
  • --hostname:設定container內部的域名。
  • --publish:把本機的port映射到container的port。
  • --name:設定container的名稱。
  • --restart:電腦啟動自動重啟。
  • --volume:把本機(mac)檔案系統目錄映射到container的目錄。

$ docker run --detach \
>   --hostname gitlab.demo.com \
>   --publish 10443:443 --publish 10080:80 --publish 10022:22 \
>   --name gitlab \
>   --restart always \
>   --volume $GITLAB_HOME/config:/etc/gitlab \
>   --volume $GITLAB_HOME/logs:/var/log/gitlab \
>   --volume $GITLAB_HOME/data:/var/opt/gitlab \
>   gitlab/gitlab-ce:latest
e6771e07da2b43abe6283e5a831a1c21f0c3074d9b167e50a61cef9cce82709a

輸入docker ps檢視運行中的gitlab container容器。

$ docker ps
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                    PORTS                                                                  NAMES
e6771e07da2b        gitlab/gitlab-ce:latest   "/assets/wrapper"   13 minutes ago      Up 13 minutes (healthy)   0.0.0.0:10022->22/tcp, 0.0.0.0:10080->80/tcp, 0.0.0.0:10443->443/tcp   gitlab

開啟瀏覽器並在url輸入localhost:10080即可進入gitlab。第一次使用要建立賬戶的密碼。如果出現「502 - Whoops, GitLab is taking too much time to respond.」錯誤畫面可能是gitlab還沒啟動完全,先等一下再試試看。



輸入新密碼,例如12345678

密碼修改後輸入帳號root及剛剛的密碼登入。



登入後點選New project建立新的git專案。



輸入專案名稱,這邊命名為hello,然後點選Create project建立專案。



專案建立後點選下面的Clone可取得專案的git repository位址。例如Clone with HTTP:http://gitlab.demo.com/root/hello.gitgitlab.demo.com是我們在啟動gitlab container給予的的domain,而在本機clone專案要改為映射的位址http://localhost:10080/root/hello.git/




在本機輸入git clone http://localhost:10080/root/hello.git將專案複製下來。第一次clone會要輸入帳號密碼,因為剛建立的專案是使用root帳號建立,所以username:root,password:12345。

$ git clone http://localhost:10080/root/hello.git
Cloning into 'hello'...
Username for 'http://localhost:10080': root
Password for 'http://root@localhost:10080': 12345678
warning: You appear to have cloned an empty repository.

將命令列目錄移到clone下來的專案目錄hello,輸入echo "Hello World" > README.md新增一個內容為Hello World的README.md檔案。

~/../hello$ echo "Hello World" > README.md

以下操作將此新增檔案的異動push到gitlab container的GitLab。

~/../hello$ git add .
~/../hello$
~/../hello$ git commit -m "first commit"
[master (root-commit) b83a0ea] first commit
 1 file changed, 1 insertion(+)
 create mode 100644 README.md
~/../hello$
~/../hello$ git push -u origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 224 bytes | 224.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To http://localhost:10080/root/hello.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

輸入git log檢視。

~/../hello$ git log
commit b83a0eafc26c9031a0b9d684f4370dabd8dd5cac (HEAD -> master, origin/master)
Author: yourname <yournmae@abc.com>
Date:   Tue Dec 1 10:34:24 2020 +0800

    first commit

回到GitLab網頁即可看到剛剛提交的檔案。




沒有留言:

AdSense