- 创建名为
helloworld
的新目录,并转到此目录中:
import ( "fmt" "log" "net/http" )
func main() { http.HandleFunc("/", handler) port := "80" if err := http.ListenAndServe(":"+port, nil); err != nil { log.Fatal(err) } }
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello World!\n")
}
:::
此代码会创建一个基本的 Web 服务器,侦听 80
端口。
- 在项目根目录下,创建一个名为
Dockerfile
的文件,内容如下:
WORKDIR /app
COPY . /app/
RUN GOOS=linux go build -o main .
FROM alpine:3.13
RUN apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone
WORKDIR /app
COPY --from=builder /app/main /app/index.html /app/
CMD ["/app/main"]
:::
2. 添加一个 .dockerignore
文件,以从容器映像中排除文件:
::: go
vendor/
.dockerignore
.gcloudignore
.gitignore
:::
- 如果您本地已经安装了 Docker,可以运行以下命令,在本地构建 Docker 镜像: