日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

制作Go鏡像

本文介紹如何在本地制作Docker鏡像,并以鏡像方式將Go應用部署到Serverless 應用引擎 SAE(Serverless App Engine)

前提條件

步驟一:準備項目

  1. 下載Demo。

    Demo內的Dockerfile內容如下:

    # Golang版本;Alpine鏡像的體積較小。
    FROM golang:1.16.6-alpine3.14 as builder
    
    # 替換Alpine鏡像,方便安裝構建包。
    RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
    
    # 安裝構建階段的依賴。
    RUN apk --update add gcc libc-dev upx ca-certificates && update-ca-certificates
    
    # 將代碼復制到構建鏡像中。
    # 注意地址不要在GOPATH中。
    ADD . /workspace
    
    WORKDIR /workspace
    
    # 掛載構建緩存。
    # GOPROXY防止下載失敗。
    RUN --mount=type=cache,target=/go \
      env GOPROXY=https://goproxy.cn,direct \
      go build -buildmode=pie -ldflags "-linkmode external -extldflags -static -w" \
      -o /workspace/gin-hello-world
    
    # 運行時鏡像。
    # Alpine兼顧了鏡像大小和運維性。
    FROM alpine:3.14
    
    EXPOSE 8080
    
    # 方便運維人員安裝需要的包。
    RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
    
    # 創建日志目錄等。
    # RUN mkdir /var/log/onepilot -p && chmod 777 /var/log/onepilot && touch /var/log/onepilot/.keep
    
    # 復制構建產物。
    COPY --from=builder /workspace/gin-hello-world /app/
    
    # 指定默認的啟動命令。
    CMD ["/app/gin-hello-world"]
  2. 在Demo所在目錄,執行以下命令,構建鏡像。

    docker build . -t gin-example
  3. 本地驗證。

    1. 指定端口映射,格式為主機端口:容器端口,運行鏡像。

      docker run -p 127.0.0.1:8080:8080/tcp gin-example
    2. 執行以下命令,查看請求是否返回正常。

      curl http://127.0.0.1:8080/

      輸出如下:pg_go_response

步驟二:制作鏡像

  1. 容器鏡像服務控制臺創建鏡像倉庫。

    個人版和企業版實例均適用本文的操作,本文以個人版實例為例。具體操作,請參見以下文檔:

  2. 構建并推送鏡像。

    您可以在目標鏡像倉庫的基本信息頁面的鏡像指南頁簽查詢具體命令。更多信息,請參見以下文檔:

    1. 執行以下命令,構建鏡像。

      docker build --tag go-demo:v1 .
    2. 執行以下命令,登錄遠端鏡像倉庫。

      docker login --username=<鏡像倉庫登錄名> registry.<regionId>.aliyuncs.com

      示例如下:

      docker login --username=****@188077086902**** registry.cn-hangzhou.aliyuncs.com

      在返回結果中輸入密碼,如果顯示login succeeded,則表示登錄成功。如何設置密碼,請參見設置鏡像倉庫登錄密碼

    3. 執行以下命令,給鏡像打標簽。

      docker tag <ImageId> registry.<regionId>.aliyuncs.com/****/go-demo:<鏡像版本號>
      • ImageId:鏡像ID。

      • registry.<regionId>.aliyuncs.com/****/go-demo:鏡像倉庫地址。

      示例如下:

      docker tag go-demo:v1 registry.cn-hangzhou.aliyuncs.com/****/go-demo:v1
    4. 執行以下命令,推送鏡像至個人版實例。

      docker push registry.<regionId>.aliyuncs.com/****/go-demo:<鏡像版本號>

      示例如下:

      docker push registry.cn-hangzhou.aliyuncs.com/****/go-demo:v1

    成功推送后,您可以登錄容器鏡像服務控制臺,在目標鏡像倉庫的鏡像版本頁面查看推送的版本。

步驟三:部署鏡像

以下僅介紹本文相關的配置項,其余信息,請參見通過鏡像部署Web應用。

  1. SAE控制臺>應用管理>Web應用,從頂部菜單欄選擇地域,然后單擊創建應用

    image

  1. 設置應用部署方式選擇鏡像部署,并單擊設置鏡像,選擇您已準備好的應用鏡像倉庫和鏡像版本。為定位到所需的鏡像倉庫,請單擊我的阿里云鏡像,并選擇鏡像倉庫所在的鏡像服務版本和命名空間。

    image

    image

  1. HTTP監聽端口設置為鏡像對外提供服務的端口。

    image

  1. 單擊一鍵創建應用,并等待應用部署完成。

步驟四:訪問應用

SAE為您的應用提供默認的訪問地址,您可以通過公網訪問應用通過私網訪問應用;在實際的生產環境中,建議您為應用關聯自定義域名,并使終端用戶通過自定義域名訪問應用。