我试图为我的盖茨比应用程序构建Docker映像。每当我运行命令docker构建。-t gatsbyapp,它会给出一个错误:

failed to solve with frontend dockerfile.v0: failed to build LLB:
failed to compute cache key: "/.env" not found: not found

同时我的Dockerfile如下所示:

FROM node:13

WORKDIR /app

COPY package.json .

RUN yarn global add gatsby-cli

RUN yarn install

COPY gatsby-config.js .

COPY .env .

EXPOSE 8000

CMD ["gatsby","develop","-H","0.0.0.0"]

当前回答

我也有同样的问题,我所要做的就是将Docker配置文件名大写:

Dockerfile >没有工作

Dockerfile >工作

其他回答

如果您正在使用任何在Dockerfile v0中不支持的新特性(如多个构建上下文),您需要在Dockerfile的开头指定Dockerfile版本

例如,在Dockerfile中,第一行是:

#syntax=码头工人/码头工人文件:1.4

可能不是OP的问题,但我在试图构建运行在Windows Linux子系统(WSL) (Debian WSL2)中的容器时遇到了这个问题,刚刚安装了Docker Compose,我所要做的就是关闭(Debian)终端并重新打开它,我的问题就解决了。

我通过在构建命令的开头添加sudo (Ubuntu)来解决这个问题。 例如:

sudo docker build --tag somename .

如果你有一个类似的项目结构,

├── docker
│   │
│   ├── app
│   │   └── Dockerfile
│   └── mlflow
│       └── Dockerfile
│
└── docker-compose.yml

你可能没有在docker-compose.yml中指定build: context:

version: '3'

services:

  mlflow:
    build:
      context: ./
      dockerfile: ./docker/mlflow/Dockerfile
    container_name: ml_app_mlflow
    volumes:
      - ./db:/db
    ports:
      - 5000:5000

试试这个简单的解决方案,像这样命名dockerfile,不带扩展名。