我正在建造一个golang:1.14.2码头集装箱,里面有一个Dockerfile的红包。
FROM golang:1.14.2
# project setup and install go-redis
RUN mkdir -p /go/delivery && cd /go/delivery && \
go mod init example.com/delivery && \
go get github.com/go-redis/redis/v7
# important to copy to /go/delivery
COPY ./src /go/delivery
RUN ls -la /go/delivery
RUN go install example.com/delivery
ENTRYPOINT ["delivery"]但是,当我试图使用docker-compose up --build -d构建容器时,我会得到以下错误:$GOPATH/go.mod exists but should not ERROR: Service 'delivery' failed to build: The command '/bin/sh -c go get github.com/go-redis/redis/v7' returned a non-zero code: 1。
但是,我可以使用Dockerfile docker container run -it --rm golang:1.14.2中的图像创建一个停靠器容器,然后运行与dockerfile中完全相同的命令,而delivery则按照我的预期执行。
以下是deliver.go:
package main
import (
"fmt"
"github.com/go-redis/redis/v7"
)
func main() {
// redis client created here...
fmt.Println("inside main...")
}我做错了什么?我查找了这条错误消息,我所看到的解决方案都没有对我有用。
编辑:这是撰写文件:
version: '3.4'
services:
...
delivery:
build: ./delivery
environment:
- REDIS_PORT=${REDIS_PORT}
- REDIS_PASS=${REDIS_PASS}
- QUEUE_NAME-${QUEUE_NAME}
volumes:
- ./logs:/logs发布于 2021-05-07 23:27:21
我也有同样的问题。您需要设置WORKDIR /go/交付
https://stackoverflow.com/questions/61530403
复制相似问题