Docker 撰写文件无效

Docker compose file invalid

我是 docker 的新手,我创建了一个 docker 文件,但我的 docker-compose 文件有问题。我目前收到错误 services.web.ports must be a list。我有一个节点 app.js 文件来处理请求并打印来自数据库的数据,还有一个 index.js 文件看起来像这样

"use strict";
console.log("entrypoint");
const app = require("./app/app.js");

我的 Dockerfile 如下所示:

FROM node:latest
WORKDIR /src
COPY package*.json /src/
RUN npm install
COPY . /src
EXPOSE 3000

这就是我当前的 docker-compose 文件的样子

version: '3.3'
services:
  app:
    build:
      context: ./
    volumes:
      - .:/src
    ports:
      -"3000:3000"
    depends_on:
      - db
  db:
    image: mysql
    restart: always
    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: true
      MYSQL_DATABASE: world
      MYSQL_USER: root
      MYSQL_PASSWORD: null
    ports:
      - "3308:3306"
    volumes:
      - db:/var/lib/mysql

我是根据一个例子写的,我知道它有问题,希望得到任何指导。如果我要通过节点 运行 单独 app.js 文件,它工作正常,但我正在尝试对我的项目实施 docker 并需要帮助。

应用服务的端口部分有错字。列表是缩进的条目,前缀为 - 。这里的行缺少 space:

    ports:
      -"3000:3000"

通过添加 space:

来解决这个问题
    ports:
      - "3000:3000"