簡體   English   中英

供應商/數據庫在 Docker 映像中找不到包

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM