为什么 docker compose 破坏了我的 Next.js 构建

why is docker compose breaking my Next.js build

我一直在使用 Next.js 和 PostgreSQL 开发应用程序。我有 3 个 docker 文件,一个用于托管我的 next.js 应用程序,两个用于两个 PostgreSQL 数据库。当 运行ning docker builddocker run 时,我对它们中的任何一个都没有问题,但是当我尝试设置 docker compose 并且两个数据库容器运行良好但是 Next.js服务器给我

next start


/bin/sh: next: not found

由于 docker-compose 对数据库工作正常,我只包括 Dockerfile 和 docker-compose 的一部分 Next.js 应用程序。

项目结构:

App>
  DB>
  UI>
    pages>
    public>
    components>
    styles>
    .dockerignore
    Dockerfile
    package.json
    tsconfig.json
    yarn.lock
  .gitignore
  docker-compose.yml
  readme.md

Docker 文件:

#nodeJS on top of alpine linux
FROM node:alpine

#copy content of UI project directory into new /app directory in image
COPY . /app

#change working directory to /app
WORKDIR /app

#install dependencies and build app
RUN yarn && yarn build

#expose port 3000 
EXPOSE 3000

#Start app server upon docker run
CMD ["yarn", "start"]

docker-compose.yml

version: '3'
services:
    app:
        build: 
            context: ./UI
            dockerfile: Dockerfile
        volumes: 
            - ./UI:/app
        ports:
            - 4960:3000

有人可以帮我确定我的设置有什么问题吗?就像我说的 docker build 和 docker 运行 完全没有问题所以它一定是我的 docker-compose 文件的问题。谢谢!

好的,在发布这个问题后大约 30 秒我弄明白了。

这一行破坏了一切,完全没有必要

volumes: 
    - ./UI:/app

走开一会儿,用新鲜的眼光看总是有帮助的!