在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.git
。gitlab.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網頁即可看到剛剛提交的檔案。
沒有留言:
張貼留言