Vite + React Docker

Sho*_*pta 8 javascript docker reactjs docker-compose vite

我正在尝试使用 docker 容器运行我的 vite+react 应用程序,代码运行良好,但不幸的是,它没有在 localhost 3000 中打开

Docker文件

FROM node:18-alpine

EXPOSE 3000

WORKDIR /react-vite-app

COPY package.json .

RUN yarn install

COPY . .

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

docker-compose.yml

version: "3.8"
services:
    reactapp:
      build: ./dir
      container_name: react_vite_app
      ports:
        - '3000:3000'
Run Code Online (Sandbox Code Playgroud)

是否缺少某些内容,如果有问题请帮我解决这个问题

小智 7

将 vite 配置中的端口设置为 3000

import { defineConfig } from 'vite'
import reactRefresh from '@vitejs/plugin-react-refresh'

// https://vitejs.dev/config/
export default defineConfig({
  server: {
    host: '0.0.0.0',
    port: 3000,
  },
  plugins: [ your plugins here ],
})
Run Code Online (Sandbox Code Playgroud)

也像这样运行 docker

FROM node:18-alpine

WORKDIR /react-vite-app

EXPOSE 3000

COPY package.json package-lock.json ./

RUN npm install --silent

COPY . ./

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


小智 5

我在相同的配置中遇到了完全相同的问题,我在这里找到了解决方案:

/sf/answers/4801671171/


小智 0

我的设置

Dockerfile

FROM node:18-alpine

WORKDIR /app

COPY . /app

ENV NODE_ENV=production

RUN npm install serve -g

RUN npm install

RUN npm run build

EXPOSE 3000

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

包.json

FROM node:18-alpine

WORKDIR /app

COPY . /app

ENV NODE_ENV=production

RUN npm install serve -g

RUN npm install

RUN npm run build

EXPOSE 3000

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

  • 不要在生产中使用预览命令,因为显然不建议这样做,它仅用于预览。我更好推荐使用 vercel 创建的服务包。 (2认同)