我在设置一个docker-compose文件时遇到了一个奇怪的错误。我想在一个docker容器中运行我的svelte-kit应用程序。我有一个这样的Dockerfile:
FROM node:alpine3.17
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
RUN npm run build
ENV PORT=3000
EXPOSE 3000
CMD ["npm", "run", "start"]
像这样构建图像:docker build -t my-app:latest。我也可以这样运行它:docker run -d -p 3000:3000 --name my-app my-app:latest
但是使用这个docker-compose.yml:
version: '3.9'
services:
pyron:
build: Dockerfile
ports:
- "3000:3000"
给了我这个错误:
npm ERR! Missing script: "start"
npm ERR!
npm ERR! Did you mean one of these?
npm ERR! npm star # Mark your favorite packages
npm ERR! npm stars # View packages marked as favorites
npm ERR!
npm ERR! To see a list of scripts, run:
npm ERR! npm run
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2023-03-22T22_53_26_633Z-debug-0.log
但是我的package.json有一个开始脚本:
"scripts": {
"dev": "vite dev",
"build": "vite build",
"start": "node build",
"preview": "vite preview",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
"lint": "prettier --plugin-search-dir . --check .",
"format": "prettier --plugin-search-dir . --write ."
},
我错过了什么?非常感谢!
1条答案
按热度按时间erhoui1w1#
你可以试试下面的代码,可以测试吗
指定生成时:如果你的docker-compose.yml文件中有一个Dockerfile,它会在docker-compose.yml文件所在的目录中寻找一个Dockerfile。但是,在这种情况下,你的Dockerfile位于当前目录中。