網站上的安裝步驟其實已經蠻清楚了,這裡我就紀錄我改的部份。我用 fig 來進行客製化,所以就先下載他的 fig.yml,原本的 fig.yml 裡有三個 container,一個是 gitlab,一個是 postgresql,一個是 redis。我移掉了 postgresql 跟 redis,這邊我改用 host 的 mysql 與 redis,並且設定必要的環境變數。fig 的安裝一定要用 python2 的 pip 來安裝,否則會有問題,目前還沒移植到 python3 上。
要存取 host 的 mysql 與 redis,要注意幾點:
- 確 定 host 的 mysql 跟 redis 是可以以 port 的方式存取,另外也要允許外部 IP 的連線。mysql 是修改 my.cnf 裡的 [mysqld] section,主要是設定 port ,重新啟動之後應該就可以;至於 redis,則是改 redis.conf 裡的 bind,將其改為 bind 0.0.0.0 ,重新啟動以後就可以。
- host 的 IP,在 docker container 裡,照理說是用 gateway 的 IP 就可以。一般都是找到
netstat -nr | grep '^0\.0\.0\.0' | awk '{print $2}'
這指令,但這得在 docker container 裡執行,fig.yml 裡沒辦法指定這個。後來是看到說直接用 host IP 也可以,所以我就直接指定,看起來是沒問題。
- docker 有問題,執行有問題,去查看 log ,看到 operation not supported 。查了很久,查不出來什麼問題,後來重開機,居然就沒問題了。事後猜想,可能是因為在 docker run 之前有更新過 kernel,archlinux 更新 kernel 都是使用 replace 的方式,或許是因為這樣而有問題。
- 使用預設的帳號 跟密碼無法登入,這個得使用 docker exec -it gitlab_gitlab_1 bash 進入 container 裡,執行 sudo -u git -H bash -c “bundle exec rake gitlab:setup RAILS_ENV=production” 以後,就可以解決。
這裡是我的 fig.yml
沒有留言:
張貼留言