【问题标题】:How to import local package to docker environment如何将本地包导入docker环境
【发布时间】:2019-08-22 09:32:07
【问题描述】:

我尝试在 Docker 环境中运行 Go API 服务器,但运行失败并出现错误。

・client: react/axios
・api: golang/gin
・web-server: nginx
・db: mysql
・container: docker
・ci-tool: travis
・deploy: aws elastic beanstalk
article
  ├ client
  ├ api
  │  ├ main.go
  │  ├ contoroller
  │  │    └ contoroller.go
  │  └ Dockerfile
  ├ nginx
  └ docker-compose.yml

这里是 api 的 Dockefile

//article/api/Dockefile

FROM golang:latest
WORKDIR '/app'
RUN go get github.com/gin-contrib/cors
RUN go get github.com/gin-gonic/gin
RUN go get github.com/go-sql-driver/mysql
RUN go get github.com/google/uuid
RUN go get github.com/aws/aws-sdk-go/aws
RUN go get github.com/aws/aws-sdk-go/service/s3
RUN go get github.com/joho/godotenv
COPY . .
CMD ["go", "run", "main.go"]

这里是 docker-compose.yml

//docker-compose.yml
  api:
    build:
      dockerfile: Dockerfile.dev
      context: ./api
    volumes:
      - ./api:/app
    depends_on:
      - db
    tty: true
    environment:
      - AWS_ACCESS_KEY_ID
      - AWS_SECRET_ACCESS_KEY
      - MYSQL_USER
      - MYSQL_PASSWORD
      - MYSQL_HOST

我希望 docker-compose up 成功,但我失败了。

api_1     | main.go:14:2: cannot find package "github.com/jpskgc/article/api/controller" in any of:
api_1     |     /usr/local/go/src/github.com/jpskgc/article/api/controller (from $GOROOT)
api_1     |     /go/src/github.com/jpskgc/article/api/controller (from $GOPATH)

【问题讨论】:

标签: docker go docker-compose


【解决方案1】:

为什么不使用 go 模块?

在 Golang 中使用多阶段构建 docker 非常流行。

这将创建一个非常小的图像。

FROM golang:1.12.9-alpine AS builder
WORKDIR /src
COPY ./go.mod ./go.sum ./
RUN go mod download
COPY ./ ./
RUN CGO_ENABLED=0 go build \
-installsuffix 'static' \
-o /myapp .

FROM scratch AS final
COPY --from=builder /myapp /myapp

EXPOSE 8080

ENTRYPOINT ["/myapp"] 

请注意,您不能在正在运行的容器上运行 bash。 使用网络服务时需要添加ca-certificates

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-24
    • 2019-12-26
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 2021-03-18
    相关资源
    最近更新 更多