Docker镜像

概述

应用引擎增加了对Docker的部分支持,可以把应用构建成Docker镜像,部署到应用引擎。
在使用Docker镜像时,需要注意以下几点。

  • 生态云自有的Docker Registry不对外开放,需要先在本地跑通镜像的构建,然后在线提交Dockerfile和相关文件,系统后台会自动构建
  • Docker镜像只支持Web应用,而且监听端口需要从环境变量PORT获取
  • 生态云提供有限的几种基础镜像,应用需要基于这些镜像来构建;如果确实需要其他镜像作为基础,请联系生态云团队
  • Dockerfile不要包含FROM语句,系统会根据选择的基础镜像,自动添加

创建新镜像

  • 登录之后,在”Docker镜像“页面,可以单击右侧镜像列表上方的创建新镜像
  • 依次填写所需信息,点击“创建应用”提交。

填写信息说明

镜像名称

便于记忆和区分的名称

Space

镜像所属的Space,不同Space之间的镜像是隔离的

基础镜像

应用使用的基础镜像

Dockerfile

不包含FROM语句,例如:

COPY myapp /myapp

RUN chmod +x /myapp

ENTRYPOINT ["/myapp"]

myapp是如下go程序编译后的可执行文件:

package main

import (
    "fmt"
    "net/http"
    "os"
)

func main() {
    http.HandleFunc("/", helloHandler)
    port := os.Getenv("PORT")
    if port == "" {
        port = "8080"
    }
    fmt.Println("listening on :" + port)
    err := http.ListenAndServe(":" + port, nil)
    if err != nil {
        panic(err)
    }
}

func helloHandler(res http.ResponseWriter, req *http.Request) {
    res.Header().Set("Content-Type", "text/html")
    res.Write([]byte("Hello!"))
}
依赖文件

按照相对于Dockerfile的路径,把Dockerfile用到的文件,打包成.tgz或者.tar.gz文件。 例如上面Dockerfile用到的myapp文件,如果位于目录/home/paas/,可以使用如下命令打包,然后上传myapp.tgz:

cd /home/paas
tar czf myapp.tgz myapp

results matching ""

    No results matching ""