發表文章

目前顯示的是 1月, 2018的文章

雙主線:網路服務容器化開發環境建置&CKAN - 廢鐵人30天歷程

廢鐵人終於結束拉XDDDD 以自己的FB為入口,大致上可以分成以下四類 基於Docker的Web Service協同開發環境建置 [Day 6] Angular 部署於 WildFly [Day 9] Docker Container 檔案共享 [Day 10] Jenkins初探 [Day 12] 繞過Jenkins的Setup Wizard與預載Plugins [Day 13] 備份還原全部的Jenkins檔案 [Day 14] 建置一個開發Web服務用的Docker環境 (I) [Day 15] 建置一個開發Web服務用的Docker環境 (II) [Day 29] 在Docker Jenkins上建置java web app並部署到WildFly CKAN [Day 1] Data portal platform - CKAN 部署與安裝 [Day 16] Add a new tab, controller, page on CKAN  [Day 17] CKAN Base Template 初探 [Day 19] Python Paste [Day 20] CKAN Simple Template Extends [Day 22] CKAN extension 測試踩雷中 [Day 23] CKAN extension 自動化測試 [Day 25] CKAN toolkit.py 與 helper.py function封裝 [Day 26] CKAN 修改上傳檔案上限 [Day 27] Modify CKAN header’s layout with custom plugin [Day 28] Coding standard of CKAN DataOps [Day 5] Creating a Data-Driven Enterprise with DataOps - Introduction [Day 7] Building a Data-Driven Organization [Day 8] Metadata 其他技術與心得 [Day 2] UX in the jungle 體驗 [Day 3] 多域名於同一伺服器的網路設定 [Day 4] 東大助理教授的日本旅遊素食訪談 [Day 11] 技術文章的撰寫風格拜讀 [Day

Docker Jenkins build java webapp and deploy on WildFly

圖片
大部分的內容可參考 這篇 ,重複的就不贅述拉! 上面這篇已經涵蓋 專案git之bitbucket設定 (已有java web專案) jenkins專案與套件安裝基本步驟 WildFly與 Jenkins Container檔案共用 (wildfly-dist) docker-compose.yml 僅列出部分與自此設定有關的檔案,也留下angular的方便對照,概念很類似 jboss-backend: image: jboss/wildfly:ytTest container_name: 'jboss_Backend' env_file: .env ports: - 8080:8080 volumes: - web-dist-volume:/opt/jboss/wildfly/angular-dist - wildfly-dist-volume:/opt/jboss/wildfly/standalone/deployments/ jenkins: image: jenkins/jenkins:ytTest container_name: 'jenkins' env_file: .env ports: - "18080:8080" - "50000:50000" volumes: - web-dist-volume:/angular-dist - wildfly-dist-volume:/wildfly-war volumes: web-dist-volume: wildfly-dist-volume: jenkins 的 Dockerfile 需加上下列這三行 RUN mkdir /wildfly-war RUN chown -R jenkins:0 /wildfly-war \ && chmod -R g+rw /wildfly-war 接著到jenkins的操作介面 選擇需要的 maven 版本 專案設定 (原始碼可以找已有

Modify CKAN header's layout with custom plugin

圖片
情境描述: 我們希望能夠使用客製化的icon與排版於Header上 使得最終的畫面如下 不過根據CKAN  Helpers.py 的程式碼 只有  build_nav_icon  函式比較接近我們的需求 但他們是使用fontawesome的icon 且排版在超連結的左方,如下 而他們產生這類nav tab的函式 主要是由  _make_menu_item 函式組裝對應的內容 這函式不僅Render排版而已 例如: 根據當前頁面是否與該tab要導到的頁面一致(也就是同頁面) 如果一致,就會讓該超連結 <a> 多了一個Style叫做active,就會反灰 這些原有的功能我們還是要保留 (e.g.,  _link_to , _link_active ) 因此,就不是單單取代掉而已 我們需要客製化一個自己的 Template Helper function 客製化Template Helper Function可以參考官網的 這篇 主要需要增加的程式碼如下 根目錄為  ~/ckan/lib/default/src/ckanext-ytdataservice/ckanext/ytdataservice ./public/chefHeader.css .module-content :last-child { padding-bottom : 0px ; } .mystyle { display : flex; float : right; } .mystyle-ul > li { float : left; list-style : none; text-align : center; padding-left : 1em ; padding-right : 1em ; margin-bottom : 1em ; border-radius : 5px ; } .mystyle-ul > li .hover { background-color : #003647 ; } .mystyle-ul > li .active { background-color : #003647 ; } .mystyle

Test Automation of CKAN Customize Extension

圖片
目前,已經自行建立了一個  ckanext-ytdataservice  extension 接著,我們以下兩篇的官方教學與範例程式碼為基底 實做客製化套件 (e.g.,  ytdataservice ) 的自動化測試,結果不含CKAN核心測試 CKAN核心的自動化測試 Extension 的自動化測試 example_iauthfunctions source code 相關檔案列表 以下是要使用到的檔案列表,我們假設所在目錄為  ~/ckan/lib/default/src/ 新增: ./ckanext-ytdataservice/ckanext/ytdataservice/tests/test_ytdataservice.py ./ckanext-ytdataservice/ckanext/ytdataservice/plugin_v4.py ./ckanext-ytdataservice/ckanext/ytdataservice/plugin_v5_custom_config_setting.py ./ckanext-ytdataservice/ckanext/ytdataservice/plugin_v6_parent_auth_functions.py 修改: ./ckan/test-core.ini ./ckan/setup.py 參考: ./ckanext-ytdataservice/ckanext/ytdataservice/plugin.py 特別注意,這個跟假設所在目錄不同   ~/ckan/etc/default/development.ini Installing CKAN from source 前置準備 架設好CKAN 2.7.2的 Development 環境 已經自行創建名為  ytdataservice  的extension,做到  We’re done! ,確認完成 plugin.py Extension的所在目錄為  ~/ckan/lib/default/src/ckanext-ytdataservice ,就不用改路徑 確認在python虛擬環境(Virtualenv),再執行指令 進入虛擬環境後在  ~/ckan/lib/default/