原始代码参考
简单起见,就是一个 myapp 文件夹,里面有一个main.go的文件 和 其对应的Dockerfile,
// main.go
package main
import (
"github.com/gin-gonic/gin"
)
func main() {
// 创建一个 CredentialsValidator 实例
// 创建一个 http.Request 实例
// req := http.Request{}
// 调用 auth 方法
r := gin.Default()
r.GET("/", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "hello world",
})
})
r.Run() // 默认在8080端口监听
}
Dockerfile
FROM golang:1.22.5 AS build
# 设置工作目录
WORKDIR /app
# 1,安装依赖包
RUN go mod init myapp-go
RUN go get github.com/gin-gonic/gin@v1.10.0
RUN go get github.com/redis/go-redis/v9@v9.6.0
RUN go get go.mongodb.org/mongo-driver@v1.16.0
# 2,拷贝代码
COPY . /app
# 3,编译代码
RUN cd /app
RUN go build main.go
# 4,暴露端口
EXPOSE 8080
# 5,容器启动时, 运行程序
ENTRYPOINT ["/app/main"]
编译
进入到myapp目录下
docker build -t myapp-go:latest .
启动并进入
docker run --name myapp-container -p 8080:8080 -it myapp-go:latest
网友评论