[英]vendor/database cannot find package in Docker image
我正在用 GO 编写一个简单的应用程序并使用 postges 我有这个文件夹结构
|--- Dockerfile
|--- api.go
|--- vendor/
database/
init.go
这是我的 dockerfile
FROM golang:1.9
ARG app_env
ENV APP_ENV $app_env
COPY . .
WORKDIR /project
RUN go get ./vendor/database
RUN go get ./
RUN go build
CMD if [ ${APP_ENV} = production ]; \
then \
api; \
else \
api; \
fi
EXPOSE 8080
当我使用 docker-compose up 时,出现此错误:
错误信息
Step 6/10 : RUN go get ./vendor/database
---> Running in 459740ba584c
can't load package: package ./vendor/database: cannot find package "./vendor/database" in:
/project/vendor/database
Service 'api' failed to build: The command '/bin/sh -c go get ./vendor/database' returned a non-zero code: 1
项目结构哪里出了问题?
您正在使用命令COPY . .
将源复制到基本映像的默认目录COPY . .
COPY . .
. 然后,您将/project
用作WORKDIR /project
工作目录。 因此,当您运行RUN go get ./vendor/database
,该命令实际上是在不存在的/project/vendor/database
运行的。 将 COPY 和 WORKDIR 的顺序切换如下
WORKDIR /project
COPY . .
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.