如何使用 Dockerfile 部署 Sveltekit 应用程序?

HON*_*z98 5 docker sveltekit railway

每当我尝试运行时,我都会尝试在铁路中部署我的 Sveltekit 应用程序

docker run --publish 8000:8000 my_project
Run Code Online (Sandbox Code Playgroud)

我回来了

> my-project@0.0.1 build
> vite build

sh: vite: not found
Run Code Online (Sandbox Code Playgroud)

这是我的 dockerfile

# syntax=docker/dockerfile:1

FROM node:19.4.0-alpine3.16
ENV NODE_ENV=production

WORKDIR /app

COPY ["package.json", "package-lock.json*", "./"]

RUN npm install 
RUN npm install dotenv 
RUN npm install @directus/sdk
RUN npm install vite

COPY . .

CMD [ "npm", "run", "build" ]
Run Code Online (Sandbox Code Playgroud)

这是我的 package.json 文件

"scripts": {
            "dev": "vite dev",
            "build": "vite build",
            "preview": "vite preview",
            "check": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json",
            "check:watch": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch",
            "test": "playwright test",
            "test:unit": "vitest",
            "lint": "prettier --plugin-search-dir . --check . && eslint .",
            "format": "prettier --plugin-search-dir . --write ."
        },
        
        "dependencies": {
            "@directus/sdk": "^10.3.1",
            "dotenv": "^16.0.3"
        }
    }
Run Code Online (Sandbox Code Playgroud)

上面的脚本和依赖项

devDependency 如下,至少是我认为有能力的

"devDependencies": {
        "@sveltejs/adapter-auto": "^1.0.0",
        "@sveltejs/kit": "^1.0.0",
        "svelte": "^3.54.0",
        "svelte-check": "^2.9.2",
        "vite": "^4.0.0",
        "vitest": "^0.25.3"
    },
Run Code Online (Sandbox Code Playgroud)