[英]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.