package main
import (
"fmt"
"log"
"net/http"
"os"
)
func helloHandler(w http.ResponseWriter, r *http.Request) {
name := os.Getenv("APP_NAME")
if name == "" {
name = "My Go Web App"
}
fmt.Fprintf(w, "Hello from %s!", name)
}
func main() {
http.HandleFunc("/", helloHandler)
port := os.Getenv("PORT")
if port == "" {
port = "8080"
}
log.Printf("Starting server on :%s", port)
log.Fatal(http.ListenAndServe(":"+port, nil))
}
# 使用官方Golang镜像作为构建环境
FROM golang:1.21-alpine AS builder
设置工作目录
WORKDIR /app
复制go.mod和go.sum以利用缓存
COPY go.mod go.sum ./
RUN go mod download
复制源码并构建二进制文件
COPY . .
RUN go build -o server .
第二阶段:使用轻量Alpine镜像运行
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
从构建阶段复制二进制文件
COPY --from=builder /app/server .
Comet AI 浏览器
下载 Comet AI 浏览器,体验由 Perplexity AI 驱动的革命性上网方式。内置 AI 助手可实时总结网页、跨标签页对比信息、自动执行任务。告别繁琐操作,让 AI 成为你的浏览副驾,大幅提升研究与工作效率。支持 Windows、macOS、Android 和 iOS。
下载
声明端口
EXPOSE 8080
启动命令
CMD ["./server"]
docker build -t my-go-webapp .docker run -d -p 8080:8080 --name webserver my-go-webapphttp://localhost:8080curl localhost:8080docker logs webserverdocker run -d -p 8080:8080 -e APP_NAME="Prod App" -e PORT=8080 my-go-webapp
node_modules
.git
README.md
*.log
tmp/
