我介绍local package了go modules服务器端 api。
在本地环境下运行正常,通过命令不会报错go run main.go。
但在指挥的时候却不起作用docker-compose up。
我想知道要编写 Dockerfile 和 docker-compose.yml 来修复哪些问题。
go mod init我在目录下命令article。
结果,它设置module github.com/jpskgc/article在go.mod.
article
├ db
├ client
├ api
│ ├ main.go
│ ├ controller
│ │ └ controller.go
│ └ Dockerfile
├ nginx
├ docker-compose.yml
├ go.mod
└ go.sum
主程序
package main
import (
"database/sql"
"os"
"time"
"github.com/gin-gonic/gin"
"github.com/jpskgc/article/api/controller"
)
api := router.Group("/api")
{
api.GET("/articles", func(c *gin.Context) {
controller.GetArticleController(c, db)
})
}
router.Run(":2345")
}
Dockerfile
FROM golang:latest
ENV GO111MODULE=on
WORKDIR /go/src/github.com/jpskgc/article/app
COPY . .
RUN go mod download
RUN go build
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
ENTRYPOINT ["/go/src/github.com/jpskgc/article/app/api"]
docker-compose.yml
version: '3'
services:
api:
build:
dockerfile: Dockerfile.dev
context: ./api
volumes:
- ./api:/go/src/github.com/jpskgc/article/app
depends_on:
- db
tty: true
environment:
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- MYSQL_USER
- MYSQL_PASSWORD
- MYSQL_HOST
- GO111MODULE
go.mod
module github.com/jpskgc/article
go 1.12
require (
github.com/aws/aws-sdk-go v1.23.7
github.com/gin-contrib/cors v1.3.0
github.com/gin-gonic/gin v1.4.0
github.com/go-sql-driver/mysql v1.4.1
github.com/google/uuid v1.1.1
github.com/joho/godotenv v1.3.0
)
我希望服务器端 api 在 docker 环境中正常工作,不会出现错误。
但实际情况是服务端的docker环境无法运行。
这是命令 docker-compose up 时的错误消息
build command-line-arguments:
cannot load github.com/jpskgc/article/api/controller:
cannot find module providing package github.com/jpskgc/article/api/controller
article_api_1 exited with code 1
这是 github 上的完整源代码(分支:try-golang-mod)。我希望有人给我Dockerfile和的答案代码docker-compose.yml。 https://github.com/jpskgc/article/tree/try-golang-mod
动漫人物
交互式爱情
相关分类