發表文章

目前顯示的是 7月, 2020的文章

angular 如何Http 如何設定 CORS (Cross-Origin Resource Sharing)

如果要對所有送出的 Request 做調整 之前我在寫後台的,就可以使用AOP的方式實作, 而Angular也有類似的架構 如果我們用  @angular/common/http  Angular只要實作 HttpInterceptor  interface就可以了 實作 HttpInterceptor 在cmd輸入 ng g service BasicAuthHtppInterceptor 已建立BasicAuthHtppInterceptorService ,修改內容如下 import { Injectable } from '@angular/core' ; import { HttpInterceptor, HttpRequest, HttpHandler } from '@angular/common/http' ; @Injectable ({ providedIn: 'root' }) export class BasicAuthHtppInterceptorService implements HttpInterceptor { constructor ( ) { } intercept(req: HttpRequest< any >, next: HttpHandler) { req = req.clone({ setHeaders: { /*有關CORS的參數就可以改在這裡了*/ 'Access-Control-Allow-Origin' : '*' , 'Access-Control-Allow-Credentials' : 'true' , 'Access-Control-Allow-Methods' : 'GET, PUT, POST, DELETE, OPTIONS, PATCH' , 'Access-Control-Max-Age' : '86400' } }); return

docker 常用指令系列, 如何透過REPOSITORY Name 刪除/stop container 和 image

每次都記不住,打在這紀錄一下 最近透過CI CD 工具,又不想記錄每次 doicker run 的 UID,可否透過 repo name , 和 image name 去做 docker stop docker rm docker rmi 當園是OK的 stop docker container 和 刪除 docker container docker rm $( docker stop $(docker ps -a -q --filter ancestor={container repository name})) example: docker rm $( docker stop $(docker ps -a -q --filter ancestor=domi/sensor-raw-query)) container repository name 替換成自己的container名稱 刪除 docker image by image name docker rmi --force $(docker images -q '{iamge repository name}' | uniq) example: docker rmi --force $(docker images -q 'domi/sensor-raw-query' | uniq) md code # 為什麼 最近透過CI CD 工具,又不想記錄每次 doicker run 的 UID,可否透過 repo name , 和 image name 去做 ``` docker stop ``` ``` docker rm ``` ``` docker rmi ``` 當園是OK的 ## stop docker container 和 刪除 docker container ``` docker rm $( docker stop $(docker ps -a -q --filter ancestor={container repository name})) ``` example: ``` docker rm $( docker stop $(docker ps -a -q --filter an

Jenkins透過 Generic Webhook Trigger 指定特定的 git branch push 才會run job , 以 Bitbucket 為例

每次 git push Jenkins Job 都會重新執行 對於之前小的項目,或是開發中的code,不想每次都deploy, 所以就想要透過 git branch去控制,那個branch push 才去run job git 先建立新的branch 我們先創建一個git branch,這個新的branch,就是用來trigger Jenkins JOB的, 那我這邊就用  release/prod  為例 先去安裝 Generic Webhook Trigger 到Jenkins首頁 到 manage (管理 Jenkins) 頁 pluginManager(外掛程式管理) 頁 選擇可用的 tab 搜尋Generic Webhook Trigger 安裝 在bitbucket git project 設定 打開git project 的 web 頁面 到Repository settings頁面 (ex :  https://bitbucket.org/xxxxxxx/admin ) 選擇 webhooks 設定 點擊  Add webhook Title --> 隨便取 , URL : http://{username}:{usertoken}@{JenkinsHost}/generic-webhook-trigger/invoke  usertoken 請參考: https://ddtwork.blogspot.com/2020/07/jenkins-git-cdwebhooks-bitbucket.html Request History :Enable request history collection Save 先來push 一個新的commit 到新的branch push完後 一樣到bitbucket webhooks 的頁面 點選剛才設定的 webhook 的 View requests 點選剛最新的event的View details (這是剛才push所發的event) 點開 Body > Show request body 可以看到以下內容 { ... "push": { "changes":

Firebase Hosting 如何在 CI 工具上 deploy , 以 Jenkins 為例

在CI工具下的 Firebase login 方式 通常我們一般登入是透過 firebase login 但是這樣登入會無法登入,就算增加  --no-localhost , 登入成功後 在Jenkins Job 執行  firebase deploy 會出現以下錯誤 + firebase deploy [ 1 m [ 31 mError: [ 39 m [ 22 m Failed to authenticate, have you run [ 1 mfirebase login [ 22 m? Build step 'Execute shell' marked build as failure Finished: FAILURE 但是在CI 工具要用以下CLI,做登入 firebase login:ci --no-localhost --token {自行取token名稱} token名稱之指令會用到,像是  firebase logout --token token 登入後console會給你一串 code ? Paste authorization code here: {系統給定的authorization token} 設定 Jenkins Job schell script firebase deploy --token "{系統給定的authorization token}" 這樣就可以透過CI deploy md code: # 在CI工具下的 Firebase login 方式 通常我們一般登入是透過 ``` firebase login ``` 但是這樣登入會無法登入,就算增加 ```--no-localhost```, 登入成功後 在Jenkins Job 執行 ```firebase deploy ``` 會出現以下錯誤 ```javascript + firebase deploy [1m [31mError: [39m [22m Failed to authenticate, have you run [1mfirebase login [22m? Build step 'Execute shell&#

Jenkins 如何設定 git CD(Webhooks),以 bitbucket 為範例

圖片
請先產生 Webhooks 的 URL http://{登入帳號}:{登入帳號的 token}@{Jenkins主機URL}}/job/{專案名稱}/build?token={專案的toke} 登入帳號 : 登入帳號 登入帳號的token 專案名稱 : 專案的名稱 專案的toke: Bitbucket 的設定 Bitbucket 的設定頁面,貼上上面的連結 之後只要有commit , 就會執行 task 完成 md code: # 請先產生 Webhooks 的 URL ``` http://{登入帳號}:{登入帳號的 token}@{Jenkins主機URL}}/job/{專案名稱}/build?token={專案的toke} ``` * 登入帳號 : 登入帳號 * 登入帳號的token ![Foo](https://github.com/kirinchen/note-annex/blob/master/jenkisbitbucket/1.PNG?raw=true) ![Foo](https://github.com/kirinchen/note-annex/blob/master/jenkisbitbucket/2.PNG?raw=true) * 專案名稱 : 專案的名稱 * 專案的toke: ![Foo](https://github.com/kirinchen/note-annex/blob/master/jenkisbitbucket/3.PNG?raw=true) ## Bitbucket 的設定 Bitbucket 的設定頁面,貼上上面的連結 ![Foo](https://github.com/kirinchen/note-annex/blob/master/jenkisbitbucket/4.PNG?raw=true) ## 之後只要有commit , 就會執行 task ### 完成

Angular 如果改變Build後 輸出的路徑位置

圖片
尋找到專案內的 angular.json檔案  打開此檔案 然後修改  outputPath   成你想要的位置,即可

Java lombok 使用 @Data 遇到 extends 會發生警告要如何處理( Multiple markers at this line)

如果遇到 Multiple markers at this line 就表示你的父類已經有 @Data 了 範例 @Data public static class Val implements OType { private String clazz; public Val () { clazz = this .getClass().getName(); } } @Data public static class RefVal extends Val { private VarLv lv; private String name; } 這時候就會出現 Multiple markers at this line 如何解決 增加 @EqualsAndHashCode (callSuper = false ) 此 Annotation 即可 完整如下 @Data public static class Val implements OType { private String clazz; public Val () { clazz = this .getClass().getName(); } } @Data @EqualsAndHashCode (callSuper = false ) public static class RefVal extends Val { private VarLv lv; private String name; } md code: # 如果遇到 ``` Multiple markers at this line ``` 就表示你的父類已經有 @Data 了 ## 範例 ```java @Data public static class Val implements OType { p