Quantcast
Channel: 天空的垃圾場
Viewing all 144 articles
Browse latest View live

讓 ASP.NET MVC 執行於 Docker

$
0
0

上一篇,我們看到了,如何安裝 Docker,並且 Run Ubuntu,和進入來管理,而這篇,我們就來使用一下 Microsoft 提供的 ASP.NET 5 Preview Docker Image,順便學一下,如何讓外面的 Port 對應到容器內部的 Port。
這篇基本上是參考這篇並進行調整。

備註:這篇的做法是在容器裡面把 Source Code 丟進去處理,下一篇會在介紹更好的方法。

取得 ASP.NET 5 Docker Image 和執行

首先,我們要先取得 ASP.NET 5 Docker Image,我們可以透過以下指令來取得。

sudo docker pull microsoft/aspnet

enter image description here

完成之後,我們一樣,就可以透過 run 來執行此 Image,但這邊要特別注意一下,這邊多了一個 -p,這個的意思是代表對應的意思,表示要把外面的 80 Port 對應到容器內部的 5004,因為在容器裡面,所有連線都無法連入的,所以必須要自定義 Port。

sudo docker run -p 80:5004 -t -i microsoft/aspnet

enter image description here

下完指令後,我們可以開另外一個終端機,透過以下指令來查看,對應的狀況。

sudo iptables -t nat -nL

看完之後,回到容器內,官方的 Image 基本上是不會有任何 MVC 的 Code 的,他提供的是一個很簡單的 Linux 還境,而裡面包含了 mono 和 K系列的指令 ( 未來會換成D系列 ),所以我們要直接在容器內下載官方範例,而下載要用到wget,因為容器原本沒有此套件,所以我們就用一下 apt-get 來安裝一下吧。

於容器內下載 Source 並執行

apt-get install wget

enter image description here

安裝完成之後,我們就可以透過 wget 來取得 source。

cd ~ && wget https://github.com/aspnet/Home/archive/master.zip&& unzip master.zip && rm master.zip

enter image description here

完成之後,我們就只需要執行以下指令,來讓 MVC 專案取得必要的 Lib ,並且啟動。

cd ~/Home-master/samples/HelloMvc && kpm restore && k kestrel

enter image description here

到這邊基本上就ok了,但是,大家別忘記了,我們在Azure的環境啊!!所以Azure的端點也別忘記開啟…

enter image description here

完成之後,我們只要輸入這台Azure VM的網址位置,使用 80 Port就可以看到結果了!!

enter image description here

Commit

最後,如果我們登出的話,就gg了,剛剛做的事情就還要重來一次…Orz…所以這邊我們會用上一個章節教到 Commit 來簽入新版本。

這邊,我們先用以下指令來查看這台容器的ID。

sudo docker ps

之後再下以下指令,來簽入。

sudo docker commit -m=’簽入描述’ -a=’簽入者’ 7ce430e7c072 aspmvc/test:ver1

完成後,我們可以再用 docker ps 來看一下結果。

enter image description here

備註

這篇基本上是參考這篇進行調整,原文內,他並不是在容器內下載 source ,而是在外面下載 source,並且透過掛載的方式掛上去。

掛載的指令如下,將本地 OS 上的目錄掛載到 容器 內,而 ro 代表唯獨。

-v [本地路徑]:[容器路徑]:ro

基本上原文的做法會比較好,畢竟實務上,我們不可能每次都登入到容器裡面去下載 source 然後再簽入,直接從外部掛載的方式,會有極大的彈性,而這篇文章是為了示範,才調整了架構。

參考資料


建立自己的 Docker image

$
0
0

假設一個情境,如果今天我們的應用程式已經開發完成了,以前還要把 Source Code 拿去客戶端部署,還要設定一堆參數等等,或是今天內部開發完成,要進行測試,也要部署到測試機上,如今有 Docker 了,有沒有辦法,只用前面介紹的 run -p 這個指令,就直接完成安裝!?

基本上,前面那篇,我們直接登入到 Docker 來進行抓取 Source 的動作,並且在裡面執行,最後 Commit ,的確,這是一種方法,也可以建立一個新的image,但是,我們不可能每次要 Run MVC 的時候,都還要登入進去執行吧,那真的很累人…其次,登入容器後,再去下載 Source 感覺也不是很好,準備環境也很麻煩,所以這篇,我們來看看,怎樣來建立自己的 Image。

準備本地端的 Source Code

首先,我們透過git指令,來取得ASP.NET 的 Source Code

git clone https://github.com/aspnet/Home.git aspnet-home

enter image description here

完成後,我們先進入專案的位置。

cd aspnet-home/samples/HelloWeb

enter image description here

建立 Dockerfile

接下來,我們透過文字編輯器,來新建一個 Dockerfile 的檔案,這個檔案主要是用來設定 Docker 容器的細節。

vi Dockerfile

enter image description here

文字的內容如下,第一行表示要用哪一個Image當作基底,接下來,拷貝目前目錄下的所有東西到 app ,然後進入app目錄,接著就來跑一下 kpm restore 這個指令,完成之後,對外的 port 要開 5004,並且於整個容器準備完成之後執行 k kestrel。除此之外,比較常用到的還有MAINTAINER(維護人)和ADD(同樣將檔案加入到image,但如果是壓縮黨會自動解壓縮)

FROM microsoft/aspnet

COPY . /app
WORKDIR /app
RUN [“kpm”, “restore”]

EXPOSE 5004
ENTRYPOINT [“k”, “kestrel”]

enter image description here

Build Image

接下來,我們就可以透過 build 的指令來建立新的image,並且取名為 myapp,後面的 . 表示路徑位置,也就是要指向 Dockerfile的位置。

sudo docker build -t myapp .

enter image description here

很快地就會完成了,完成之後我們可以透過等下指令看一下是否有增加進去。

sudo docker images

enter image description here

Run

完成後,我們就可以拿這個 Image 來進行建置容器的動作,這邊的 -d 代表的是讓容器在背景執行,最後我們再用 docker ps 來查看,就可以發現,他在背景執行了。

sudo docker run -t -d -p 80:5004 myapp

enter image description here

上傳到 Docker Hub

最後,我們可以把我們準備好的 Image 提供給別的使用者共享,我們可以把我們的影像檔傳到 Docker Hub 上,所以在進行最後一個步驟之前,要先去申請 Docker Hub 的帳號。

申請完成之後,我們就可以透過以下指令進行登入。

sudo docker login

enter image description here

那再上傳之前,有一點需要注意,Docker Hub 的格式為 UserName/Repo,所以這邊我們要先改名一下,不然會傳不上去,我們先用以下指令查看我們目前有哪些 Image。

sudo docker images

接下來,我們就可以用以下指令改名,改成 skychang/mapp。

sudo docker tag myapp2:latest skychang/myapp:latest

enter image description here

最後,我們再用 push ,就可以傳到 Docker Hub 嚕!

sudo docker push skychang/myapp

enter image description here

完成後,就可以在 Docker Hub 看到嚕!!

enter image description here

刪除用不到的 Image

如果有用不到的 Image ,可以透過 rmi 的指令移除 image , rmi 後面的參數是代表 image 的名稱

sudo docker images 來查看所有的資訊

sudo docker rmi myapp

enter image description here

參考資料

紀錄文 - Windows 10 發佈

$
0
0

前言

基本上,就這依舊是個紀錄文,紀錄一下 Windows 10 的發表,所以內容不會有什麼新功能介紹之類的,就存粹是個紀錄文…

開始

至 Windows 8 這個雙面刃上市以來,就一直被人家罵到臭頭,就算推出了8.1大家還是不領情… ( 其實小弟我是用的還滿習慣的XDD )
而隨著 Microsoft 的組織改組,新的執行長上任,整個開發團隊開始跑敏捷 Scrum ,更加的在乎使用者的建議:而這個模式下的產物就是 Windows 10

其實看整個新聞過程,Windows 10 從開始列的回歸XDD,就可以明顯感受到很重視使用者的意見,也讓使用者一片叫好 ( 可見開始列真的很重要…但小弟真的無感阿XDD ),而後隨著各個預覽版本,提供給使用者下載,甚至可以免費升級等新聞,也可以看到 Microsoft 正走向不同的路..

而經過長時間的過程 ( 小弟也是長時間的試用,踩坑… ) 終於在 2015/07/29 推出了 Windows 10 ,而版號 10240 更是有深層的含義 ( 2 的 10 次方,就是 Win 10 ),也可以看出微軟工程師是充滿著活力(惡搞)喜好著這份工作的XDD

前面的廢話就先說到這邊,接下來,依舊是讓人無聊乏味的安裝過程,就用安裝過程來紀念這上市的一刻吧~~

首先,安裝的畫面,根本沒變… ( 也合理啦… )

enter image description here

但是速度變快了,根據 FB 朋友的消息,大概都在 10min 左右裝完。

enter image description here

然後重新開機,出現這令人熟悉的Logo。

enter image description here

接著,嗨!我們正在為您進行設定~

enter image description here

完成之後,基本上設定都沒啥變動,唯一發現不同的一點就是這邊可以選擇要加入 Azure AD 或是公司網域,不知道是不是因為小弟安裝的是企業版,所以才跳出這個設定…而且也沒地方可以選擇使用 Microsoft Account 登入….後來只能選擇加入網域,而下一步也沒什麼特別的,就是建立 Local 帳號…

enter image description here

完成後,就可以看到漂亮的桌布,如果要使用 Microsoft Account 還是可以從設定這邊去變更…

enter image description here

當然,其他比較大的變動就是預設使用 Edge 了,能捨棄掉 IE ,真的是太棒了~ ( 當然,用搜尋還是可以招喚出舊 IE ),但至少有了這個舉動,可以讓一些企業開始重視把 IE 扔掉的議題了~

enter image description here

當然還有很多新的功能,例如可以有多個桌面,但是對小弟來說,也是可有可無啦XDD,稍微用了一下,還是不習慣= =….最後比較可惜的,小娜也還沒出現…

最後,在這 Windows 30年頭,也用一個從 Tom 哥那邊看來的影片,紀念一下 Windows 與我們走過的痕跡吧~

Windows 30 年頭

結束與開始

$
0
0
曾經,想自己使用 Linux 架設 WordPress ,後來要搞一堆有的沒的東西,人也懶了,文章也難產了... 到後來決定使用 Service ,也就是 Blogger ,也已經經過好幾個好幾個年頭,而有開始,也有結束;這段時間,在這個 Blogger ,共有 60 萬人曾經看過,( 或被我誤導 XDD ) 我寫的各種文章,也有很多人留言,有鼓勵,有問問題,也有一些批評,和馬上被我丟到垃圾桶的廣告... 很遺憾的是沒辦法一個一個回復大家的問題,但很謝謝也很開心自己寫的筆記能對大家多多少少有些微不足道的幫助~~

而隨著時間的流逝,這裡也即將變成一個歷史的記憶,就如同標題一樣,有開始,自然也會有結束,這在今天,小弟我也在這邊宣告了 天空的垃圾場 Blogger 的結束...而雖然結束了,但這裡的文章,依舊會保持在這邊,繼續留在網際網路上幫(一ˊ)助( ㄉㄨˊ)大家。

但結束了,並不代表完結,就如同一些小店因為房租太貴,搬家一樣,小弟也花了一段時間陸陸續續的將文章轉移到了新的地方 ( 所以這篇有搬遷啟示的意味 XDD ),而新的住所就是大家熟悉的 GitHub Page.

http://skychang.github.io

或許有人會很好奇,為什麼要搬家勒 ?? Blogger 不是好好的嗎??

會選擇新的家,其實有幾個一直在思考的考量...其中一個考量是覺得 Blogger 沒在進步了...在以前,用編輯器寫文章,傳上去是一件理所當然的事情,但這個時代變了,而 Blogger 一直沒有跟上...

是的,小弟我的第一個考量,就是 MD 格式 ( MarkDown ) ,就如同上面說的,以前的模式是理所當然,但現在,小弟我更希望能用 MD 格式寫文章,而這個 MD 格式就如同 Source Code一樣,我只要存著這 Source Code ,我就可以自由的轉成 Html,甚至是在不同的平台轉換...而如今的 Blogger 做不到...或是說,要花一些功夫來做到...

其次是,以前好用的 Windows LiveWriter 也不支援新的 Windows OS,甚至是 MacOS,雖然 LiveWriter 真的是神物,搭配 Blogger 可以輕鬆處理貼圖問題...但在不支援的情況下,也真的是件很麻煩的事情了....當然,還是有其他的解決方案,但後來聽到 LiveWriter 官方也確定不維護,並且 Open Source 後,我思考後,也覺得差不多該放棄了...

後來,決定使用 GitHub Page,原因也很簡單,免費,而且可以針對文章進行版控,而針對 MD 也可以進行版本控制,未來更方便的將文章轉移到 GitBook 等平台...雖然在貼圖上面變的比較麻煩,也要自己處理一些留言和分析的東西,但現在也可以用 Sublime、Visual Studio 甚至是 Visual Studio Code 來寫文章了,這也代表,可以跨平台了,撰寫的過程也變的更加順暢了,也變的更像在寫程式 ( 寫完後,要先簽入,還要 CI CD ... ),而這也是小弟我轉換平台的原因。

另外,或許有人會想問,那為什麼網址不順便換過去勒??
原因很簡單,因為我想讓加入書籤的朋友,依舊能找到文章的所在....
雖然可以做到讓新的站,和這裡的每篇網址長的都一模一樣,但那畢竟是大量的工,與其這樣,小弟我後來還是決定,做一個切割...這裡還是維持這就好,讓大家找的到文章還是比較重要~~

最後,這裡的文章,依舊會保留在這邊,但未來也不會在這裡進行維護,而新的地方,也同樣會有這裡的所有文章... ( 但排版不知道會變成怎樣就是了 XDD ),所以,以後看到兩個天空的垃圾場,不用覺得訝異喔 XDDDDD

題外話,據說今天也是 點部落 二轉的日子,或許有人會問,為什麼不轉去 點部落 呢??
點部落是個好平台,但我進行轉換的過程中,完全不知道 點部落 要二轉,後來都轉的差不多的時候,我也弄的差不多了 XDDD 所以就直接搬到 GitHub 上面去了..... 或許未來 點部落 三轉,會再搬過去也說不定喔!!~

最後的最後,謝謝 Google Blogger 的這個平台,也謝謝曾經來看過,那 60 萬的瀏覽次數,我們在新的地方見!!~

Sky. 2015/11/22
Viewing all 144 articles
Browse latest View live