如何用docker快速搭建大型開源項目(tuleap)的開發編譯環境

前言

相信大家在調查使用開源項目時特別是比較複雜的開源項目,由於項目的歷史性進展問題,很可能項目中會用到前端非常多的框架,插件,腳本等,此時僅僅在本地開發環境搭建一套開發環境可能要花費幾周的時間,意志不堅定者很可能中途會放棄,也有可能費了九牛之力可算將開源環境整起來,卻發現自己本地的項目開發環境整崩了!本篇博文向大家介紹用docker搭建複雜開源項目的開發環境環境的,這裏用到的開源項目是 tuleap
https://docs.tuleap.org/

該項目提供發佈的完整docker 鏡像 docker pull enalean/tuleap-aio

該項目的git-hub地址:https://github.com/Enalean/tuleap

我們要完成的任務:

  1. 下載安裝docker;
  2. 構建docker基礎開發鏡像安裝node開發環境;
  3. github上拉取開源項目tuleap源碼;
  4. 用本地源碼路徑掛載基礎開發環境 docker 容器;
  5. 拉取官方tuleap docker鏡像, 安裝鏡像啓動lueap項目;
  6. 將本地github tuleap項目源碼掛載本地源碼路徑,用docker基礎開發環境安裝運行tuleap項目。
  7. 修改本地源碼,用docker基礎開發環境編譯打包。
  8. 將打包的源碼複製到tuleap官方提供的docker鏡像容器中,啓動項目查看修改結果

由於本篇博文注重實際操作,以及lueap源碼的編譯打包,對於docker相關原理不做詳細說明,部分命令含義可以相見docker基礎教程

二.mac上安裝docker

1.下載docker安裝包

下載地址:edge

2.配置docker鏡像加速器

由於你懂的原因爲了使docker在後期拉取鏡像速度,必須配置鏡像加速

此處我們選擇阿里雲的docker鏡像加速器,你只需免費註冊即可

在這裏插入圖片描述

在已安裝好的docker -->perfrence—>Docker Egine

在這裏插入圖片描述

3.檢查安、裝配置結果

控制檯輸入命令:docker info

在這裏插入圖片描述

在這裏插入圖片描述

即可證明安裝配置成功。

二.構建docker基礎開發環境node鏡像

由於tuleap 的源碼packege中已經集成了開發編譯環境的相關依賴,我們只需要構建node基礎環境

1.編寫dockerfile文件

新建空的開發目錄 app-data 在開發目錄下新建dockerfile文件

FROM node:13
RUN npm set registry https://registry.npm.taobao.org/
WORKDIR /app-data

2.通過dockerfile文件創建docker鏡像

控制檯切換到上一步新建的工程根目錄下執行:docker build -t app-data:v1 .

千萬注意後面的黑點 一定要帶上

完成後查看鏡像:docker images

在這裏插入圖片描述

三.github上拉取開源項目tuleap源碼

tuleap源碼地址: https://github.com/Enalean/tuleap

拉取完本地目錄結構:

在這裏插入圖片描述

注意: 原則上從github上拉取下來的源碼,安裝之後,是可以正常編譯打包的。但是由於該項目的特殊性大多數情況下是無法編譯運行的,感興趣可以看看其前端的源碼框架非常多邏輯及其複雜。

四. 用本地源碼路徑掛載基礎開發環境 docker 容器

這一步是我們要構建docker開發環境的核心,其本質目的就是用本地的源碼在docker容器的開發編譯環境下打包,以便於在本地修改源碼的驗證。

命令: docker run -it -v /Users/guocongcong/Desktop/caowenbo/tuleap-master:/app-data app-data:v1 bash

五.拉取tuleap docker鏡像運行lueap項目

1.拉取tuleap docke鏡像

命令: docker pull enalean/tuleap-aio:centos7

檢查鏡像:docker images

在這裏插入圖片描述

2.運行該鏡像

運行該鏡像:docker run -it -e VIRTUAL_HOST="localhost" -p 80:80 -p 443:443 enalean/tuleap-aio:centos7

驗證:瀏覽器輸入:https://localhost/

在這裏插入圖片描述

3.設置tuleap 超級用戶賬戶

docker控制檯進入上步所運行的容器內:docker exec -it 7dea1b26e963 bash

注意查看 ID:docker ps 拿到容器id進入哦

執行密碼生成命令: cat /data/root/.tuleap_passwd

在這裏插入圖片描述

4.用超級賬戶登陸

用戶名:admin
密碼:【粘貼上步生成的密碼】
在這裏插入圖片描述

進入:

在這裏插入圖片描述

4.安裝tuleap需要的插件

本次演示Agile Dashboard插件的安裝,頁面操作。

六.將本地github tuleap項目源碼掛載本地源碼路徑,用docker基礎開發環境安裝運行tuleap項目。

本地從github上當下來的源碼,將源碼路徑掛載到docker 基礎開發環境容器中,進行安裝運行打包。

1.掛載本地路徑

掛載本地源碼路徑命令:docker run -it -v /Users/guocongcong/Desktop/caowenbo/tuleap-master:/app-data app-data:v1 bash

本地路徑:/Users/guocongcong/Desktop/caowenbo/tuleap-master

tag::/app-data

掛載到docker的開發環境容器名稱: app-data:v1

在這裏插入圖片描述

2.安裝tuleap開發環境依賴

npm install

七.修改本地源碼,docker基礎開發環境編譯打包

1.修改本地tuleap源碼

本次演示我們修改AgileDashboard 插件中的源碼

在這裏插入圖片描述

打斷點,輸出log

2.dokcer容器 data-app:v1中編譯出打包文件

此處就是常用的項目腳本命令

在這裏插入圖片描述

npm run build

注意:主項目和插件項目要分別安裝

打包成功後看到打包文件:

在這裏插入圖片描述

八.將打包的源碼複製到tuleap官方提供的docker鏡像容器中,啓動項目查看修改結果

1.拷貝本地打包出來的文件到docker容器中

命令:docker cp /Users/guocongcong/Desktop/caowenbo/tuleap-master/src/www/assets/agiledashboard/ 2d309337215f:/usr/share/tuleap/src/www/assets

詳解: 拷貝命令:docker cp

本地路徑:/Users/guocongcong/Desktop/caowenbo/tuleap-master/src/www/assets/agiledashboard/

tuleap官方鏡像容器id:2d309337215f:

tuleap官方鏡像容器對應的打包文件替換路徑:/usr/share/tuleap/src/www/assets

2.檢查是否拷貝成功

進入容器:docker exec -it 2d309337215f /bin/bash

進入對應目錄:cd /usr/share/tuleap/src/www/assets/agiledashboard

注意拷貝工程中一定要使docker目標容器是啓動着的狀態

3.再次瀏覽器查看頁面結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章