首頁  >  文章  >  後端開發  >  golang docker web部署

golang docker web部署

WBOY
WBOY原創
2023-05-15 09:57:37460瀏覽

隨著網路的快速發展,對於企業應用程式的部署和管理越來越複雜。而Docker容器技術的出現,可以幫助開發人員大幅簡化應用程式的部署流程和環境建置工作。本文將介紹如何使用Go語言和Docker容器技術進行Web應用程式的部署和管理。

一、準備工作

1.安裝Go語言開發環境。
需安裝Go語言的開發環境及相關工具,下載網址為:https://golang.org/dl/。

2.安裝Docker容器技術。
需安裝最新版本的Docker CE,下載網址為:https://www.docker.com/community-edition。

3.安裝程式碼編輯器。
本文使用Visual Studio Code作為程式碼編輯器,下載網址為:https://code.visualstudio.com/download。

4.建立Go Web專案。
在命令列中,進入你的工作目錄,使用以下命令建立一個名為「goweb」的Go Web專案。

$ go mod init goweb

5.下載所需的Go依賴套件。
使用以下指令下載所需的Go依賴套件。

$ go get -u github.com/gin-gonic/gin

二、建立Web應用程式

在上一個步驟中已經安裝了Gin框架作為Web應用程式的基礎支持,接下來讓我們創建一個簡單的Web應用程式。

1.在專案中建立一個資料夾,命名為“static”,作為存放前端資源和靜態檔案的目錄。

2.在專案中建立一個資料夾,命名為“templates”,用於存放HTML範本檔案。

3.建立一個名為「main.go」的Go文件,內容如下:

package main

import "github.com/gin-gonic/gin"

func main() {
    router := gin.Default()
    router.LoadHTMLGlob("templates/*")
    router.Static("/static", "./static")
    router.GET("/", func(c *gin.Context) {
        c.HTML(200, "index.tmpl", gin.H{
            "title": "Golang Docker Web Deployment",
        })
    })
    router.Run(":8080")
}

以上程式碼建立了一個簡單的網站,使用Gin框架載入範本和靜態文件。可以透過造訪http://localhost:8080/查看網站。

三、建置Docker映像

接下來讓我們使用Docker建構一個Docker映像。

1.在專案根目錄中建立一個名為「Dockerfile」的文件,檔案內容如下:

FROM golang:1.16 AS build

WORKDIR /app

COPY go.mod go.sum ./
RUN go mod download

COPY . .

RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .

FROM alpine:latest

RUN apk --no-cache add ca-certificates

WORKDIR /root/

COPY --from=build /app/app .

EXPOSE 8080

CMD ["./app"]

以上程式碼建立了一個Dockerfile,在第一個階段中,使用golang :1.16作為基礎鏡像,安裝所需的Go依賴包,並將本機程式碼拷貝到鏡像中建置應用程式。在第二個階段中,使用最新版本的alpine鏡像作為基礎鏡像,並將應用程式檔案複製到容器中運行。

2.開啟命令列,進入專案根目錄,執行以下命令建置Docker映像。

$ docker build -t golang-web .

以上指令將會讀取Dockerfile檔案中的內容並建立一個名為「golang-web」的映像。

3.執行Docker容器
執行以下命令來啟動容器。

$ docker run -p 8080:8080 golang-web

以上指令將會啟動一個名為「golang-web」的容器,並將容器的8080埠對應到主機的8080端口。

四、透過Docker Compose管理多個容器

如果需要同時管理多個容器時,可以使用Docker Compose來建立和管理多個容器。

1.建立docker-compose.yml檔案
在專案的根目錄下,建立一個名為「docker-compose.yml」的文件,內容如下:

version: '3'

services:
  backend:
    build: .
    ports:
      - "8080:8080"
    command: ["./app"]
  frontend:
    image: nginx:alpine
    volumes:
      - ./frontend:/usr/share/nginx/html
    ports:
      - "80:80"

以上配置會建立兩個服務:一個名為「backend」的服務用於運行Go Web應用程式;另一個名為「frontend」的服務用於運行NGINX Web伺服器作為前端代理。

2.建立frontend目錄
在專案的根目錄下,建立一個名為「frontend」的目錄,並建立一個名為「index.html」的HTML文件,內容如下。

<!DOCTYPE html>
<html>
<head>
    <title>Go Docker Web Deployment</title>
</head>
<body>
    <h1>Hello World!</h1>
</body>
</html>

以上程式碼為一個簡單的HTML頁面。

3.啟動Docker Compose
在命令列中進入專案根目錄,執行以下命令啟動Docker Compose:

$ docker-compose up -d

以上命令會啟動兩個服務,注意使用「-d」選項可以讓Docker Compose在背景運作。

四、總結

透過本文的介紹,我們可以使用Go語言和Docker容器技術快速地建立一個簡單的Web應用程序,並使用Docker Compose管理多個容器。這種方式可以大大簡化部署流程和環境建置工作,為企業應用程式的快速部署和管理帶來了便利。

以上是golang docker web部署的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn