我正在用GO编写一个简单的应用程序,我使用了这个文件夹结构
|--- Dockerfile
|--- api.go
|--- vendor/
database/
init.go这是我的文件
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当我开始工作时,我得到了这个错误:
错误消息
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我的项目结构出了什么问题?
发布于 2020-01-03 17:33:09
您正在使用命令COPY . .将源复制到基映像的默认目录。然后,您将/project作为WORKDIR /project的工作目录。因此,当您运行RUN go get ./vendor/database时,该命令实际上在不存在的/project/vendor/database中运行。按以下方式切换复制和WORKDIR的顺序
WORKDIR /project
COPY . .https://stackoverflow.com/questions/59567975
复制相似问题