您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么在docker上構建私有云IDE和devops構建鏈”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
我用的是2019.2.2號左右dockerhub上sameersbn/gitlab的GitLab Community Edition 11.7.0(在他的鏡像中,7.4.3之前版本,鏡像里包含所有組件,7.4.3版本鏡像里只包含核心組件:nginx、sshd、ruby on rails、sidekiq),不要下載官方的gitlab/gitlab-ce,那個鏡像里內內置了postgresql數據庫。啟動時占用內存過大。而且不正交。由于這個鏡像很大,外網線路下載起來很費事,容易中斷,我們可以利用上ss的方法,在windows上開一個允許局域網連接。然后在群暉控制面板->你當前使用的網絡界面中配置一個代理服務器。之后下載就會快多了,下載完全后,同時下載redis:latest,這樣postgresql9.5,redis,gitlab鏡像都有了。先啟動postgresql和redis的實例。
再開啟一個sameersbn/gitlab的實例,link到postgresql9.5:別名postgresql,redis:別名redisio,80容器端口映到8001,因為主機群暉占用了80。增加幾個環境變量,
GITLAB_SECRETS_DB_KEY_BASE=隨便寫 GITLAB_SECRETS_SECRET_KEY_BASE=隨便寫 GITLAB_SECRETS_OTP_KEY_BASE=隨便寫
啟動,gitlab會自動連接postgresql,發現容器退出,查看日志后發現,FATAL: role "root" does not exist,數據庫中沒有root用戶,這是因為gitlab實例對postgresql實例的數據庫有root檢查,及其它一些硬性配置上的要求。下面這些做:在群暉的web版進postgresql1實例的終端機界面(點新增會自動打開一個bash終端)新建一個root用戶并賦于權限。
su - postgres psql create user root with password 'password'; ALTER ROLE root WITH SUPERUSER; 此時再嘗試啟動應該沒有上述錯誤了。但又退出,且提示psql: FATAL: database "gitlabhq_production" does not exist CREATE USER gitlab WITH PASSWORD 'password'; CREATE DATABASE gitlabhq_production OWNER gitlab; GRANT ALL PRIVILEGES ON DATABASE gitlabhq_production TO gitlab; \q
最終啟動成功,發現內存維持在1G多比gitlab/gitlab-ce少很多,打開群暉ip:8001,會提示讓你修改root的密碼,這個root是gitlab用戶的不是postgresql的。用root和這個密碼登錄,進群暉ip:8001/admin/。
現在可以在上面建立repo,clone的界面上顯示的是localhost,你需要額外加二個啟動環境參數來定制這里顯示為localhost的部分,另外如果你想導出各種volumes,參照ellie關于權限的處理方法就行。
最后,然后進admin/runners查一個token,備用。
這里的坑有點多。
首先不要下載sameersbn/gitlab-ci-multi-runner:latest(gitlab/gitlab-runner也是multi的),這個版本太老,啟動后link到一個別名為gitlab的第一步安裝的gitlab實例,sameersbn的runner是可以定義環境變量注冊的
RUNNER_TOKEN:上面的token CI_SERVER_URL:http://link到的gitlab別名:80到主機的轉發端口/ci RUNNER_DESCRIPTION:隨便填 RUNNER_EXECUTOR:這個暫時先填shell
雖然方便,然而我嘗試了下這種方法在上述sameersbn/gitlab-ci-multi-runner版本中根本無法使用,一直提示404,PANIC: Failed to register this runner. 404,PANIC: Failed to register this runner. Perhaps you are having network problems
我們下載同gitlab版本的gitlab/gitlab-runner:v11.7.0,啟動后link到第一步安裝的gitlab別名gitlab,然后進終端機用命令行方式注冊runner到CI:
像上一個方法一樣新建一個bash,會進入/home/gitlab_runner中,打入gitlab-runner register會提示輸入六個選項的參數。依次是:
url:這個填http://gitlab/ci registration-token:這個填第一步獲取備用到的那個token executor這里填docker docker-image這里我可以按需求填alpine:3,這個有什么講究呢?這什么選這個呢?預置的有什么用呢?其實這是構建Docker image時填寫的image名稱,根據項目代碼語言不同,指定不同的鏡像。 description隨便填 tag-list這里填v1170
所以你看出來了,以后devops的觸發主要是由其中對應到這里的tags來觸發,docker ci build的原理其實就是以某docker image為虛擬機,在里面一層一層構建fs,然后疊加成最終鏡像,這里的docker-img即為那個虛擬機。
所以docker image加tag的組合可以根據很多不同目的來定義多個多用。
“怎么在docker上構建私有云IDE和devops構建鏈”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。