推荐答案
// www.javascriptcn.com code example
# 1. 编写一个简单的 Go 应用
# main.go
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, World!")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
# 2. 创建 Dockerfile
# Dockerfile
FROM golang:1.19-alpine
WORKDIR /app
COPY . .
RUN go build -o main .
EXPOSE 8080
CMD ["./main"]
# 3. 构建 Docker 镜像
docker build -t my-go-app .
# 4. 运行 Docker 容器
docker run -p 8080:8080 my-go-app本题详细解读
1. 编写 Go 应用
首先,你需要编写一个简单的 Go 应用。这个应用会监听 8080 端口,并在访问根路径时返回 "Hello, World!"。
2. 创建 Dockerfile
接下来,你需要创建一个 Dockerfile 来定义如何构建 Docker 镜像。Dockerfile 的内容如下:
FROM golang:1.19-alpine:使用官方的 Go 1.19 镜像作为基础镜像,基于 Alpine Linux,体积较小。WORKDIR /app:设置工作目录为/app。COPY . .:将当前目录下的所有文件复制到容器的/app目录。RUN go build -o main .:在容器中编译 Go 应用,生成可执行文件main。EXPOSE 8080:暴露 8080 端口,允许外部访问。CMD ["./main"]:设置容器启动时执行的命令,即运行编译后的 Go 应用。
3. 构建 Docker 镜像
使用 docker build 命令构建 Docker 镜像。-t my-go-app 参数指定镜像的名称为 my-go-app。
4. 运行 Docker 容器
使用 docker run 命令运行 Docker 容器。-p 8080:8080 参数将容器的 8080 端口映射到主机的 8080 端口,这样你就可以通过 http://localhost:8080 访问 Go 应用。
通过以上步骤,你就可以成功使用 Docker 部署一个简单的 Go 应用了。