<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          使用 Go 和 ReactJS 構(gòu)建聊天系統(tǒng)(六):Docker 部署

          共 2392字,需瀏覽 5分鐘

           ·

          2021-01-18 10:00

          點(diǎn)擊上方藍(lán)色“Go語言中文網(wǎng)”關(guān)注,每天一起學(xué) Go

          本節(jié)完整代碼:GitHub[1]

          本文是關(guān)于使用 ReactJS 和 Go 構(gòu)建聊天應(yīng)用程序的系列文章的第 6 部分。你可以在這里找到第 5 部分 - 優(yōu)化前端[2]

          在本節(jié)中,我們將專注于將 Docker 添加到后端應(yīng)用程序中。

          為什么要這么做呢?在我們研究諸如身份驗(yàn)證,負(fù)載均衡和部署之類的問題前,使用容器技術(shù)部署應(yīng)用程序是個(gè)標(biāo)準(zhǔn)的做法。

          為什么用 Docker

          如果這是你第一次聽說 Docker 容器化技術(shù),那么你可能會(huì)質(zhì)疑使用它的原因。

          對我來說,其中一個(gè)主要原因是它讓部署變得更加容易。你可以將基于 docker 的應(yīng)用程序部署到支持 Docker 的任何服務(wù)器或平臺。

          這意味著,無論你在何處部署,都可以使用簡單的命令啟動(dòng)應(yīng)用程序。

          不僅如此,它還解決了 “在我的機(jī)器上運(yùn)行好好的” 這個(gè)問題,因?yàn)樵谀愕?Dockerfile 中,可以指定應(yīng)用程序啟動(dòng)時(shí)所需的確定環(huán)境。

          開始

          首先我們得在計(jì)算機(jī)上安裝 Docker。可以參考:Docker 指南[3]

          在安裝了 docker 并讓它運(yùn)行后,我們就可以創(chuàng)建 Dockerfile 了:

          FROM?golang:1.11.1-alpine3.8
          RUN?mkdir?/app
          ADD?.?/app/
          WORKDIR?/app
          RUN?go?mod?download
          RUN?go?build?-o?main?./...
          CMD?["/app/main"]

          我們定義了 Dockerfile 文件之后,就可以使用 docker cli 構(gòu)建 Docker 鏡像:

          注意 - 如果你的網(wǎng)速比較差,下一個(gè)命令可能需要等待一段時(shí)間才能執(zhí)行,但是,由于有緩存后續(xù)命令會(huì)快得多。

          $?docker?build?-t?backend?.
          Sending?build?context?to?Docker?daemon??11.26kB
          Step?1/8?:?FROM?golang:1.11.1-alpine3.8
          ?--->?95ec94706ff6
          Step?2/8?:?RUN?apk?add?bash?ca-certificates?git?gcc?g++?libc-dev
          ?--->?Running?in?763630b369ca
          ?...

          成功完成 build 步驟后,我們可以將該容器啟動(dòng)起來:

          $?docker?run?-it?-p?8080:8080?backend
          Distributed?Chat?App?v0.01
          WebSocket?Endpoint?Hit
          Size?of?Connection?Pool:??1
          &{?0xc000124000?0xc0000902a0?{0?0}}
          Message?Received:?{Type:1?Body:test}
          Sending?message?to?all?clients?in?Pool

          正如你所見,在運(yùn)行此命令并刷新客戶端后,可以看到現(xiàn)在已經(jīng)連接到 Docker 化的應(yīng)用服務(wù),也可以看到終端正在打印日志。

          如果現(xiàn)在想要將此應(yīng)用程序部署到 AWS 上,這會(huì)大大簡化一些過程。現(xiàn)在可以利用 AWS 的 ECS 服務(wù)的一些命令來部署和運(yùn)行我們的容器。

          同樣的,如果想要使用 Google 云,我們可以將其部署到 Google 的容器產(chǎn)品中,無需額外的工作!這只是突出 Docker 化的巨大好處之一。

          前端為什么不使用 Docker

          在這一點(diǎn)上,你可能想知道為什么不對 frontend/ 應(yīng)用程序做同樣的事情?原因是我們打算將前端應(yīng)用部署到 AWS S3 服務(wù)。

          當(dāng)部署上線時(shí),前端不需要任何花哨的服務(wù),我們只需要能夠可靠地提供構(gòu)建的前端文件。

          總結(jié)

          因此,在本節(jié)中,我們設(shè)法將 Docker 添加到后端應(yīng)用程序中,這對持續(xù)開發(fā)和部署的人員有益。


          via: https://tutorialedge.net/projects/chat-system-in-go-and-react/part-6-dockerizing-your-backend/

          作者:Elliot Forbes[4]譯者:-。了;‘’[5]校對:polaris1119[6]

          本文由 GCTT[7] 原創(chuàng)編譯,Go 中文網(wǎng)[8] 榮譽(yù)推出

          參考資料

          [1]

          GitHub: https://github.com/watermelo/realtime-chat-go-react/tree/part-6

          [2]

          優(yōu)化前端: https://studygolang.com/articles/22433

          [3]

          Docker 指南: https://www.docker.com/get-started

          [4]

          Elliot Forbes: https://twitter.com/elliot_f

          [5]

          咔嘰咔嘰: https://github.com/watermelo

          [6]

          polaris1119: https://github.com/polaris1119

          [7]

          GCTT: https://github.com/studygolang/GCTT

          [8]

          Go 中文網(wǎng): https://studygolang.com/



          推薦閱讀


          福利

          我為大家整理了一份從入門到進(jìn)階的Go學(xué)習(xí)資料禮包,包含學(xué)習(xí)建議:入門看什么,進(jìn)階看什么。關(guān)注公眾號 「polarisxu」,回復(fù) ebook 獲取;還可以回復(fù)「進(jìn)群」,和數(shù)萬 Gopher 交流學(xué)習(xí)。

          瀏覽 66
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  在线免费观看国产黄色片 | 军人妓女院BD高清片在线播放 | 欧美一级看片a免费观看 | 亚洲欧美日韩一级片 | 成人性爱视频在线观看 |