【问题标题】:run nuxt3 with docker使用 docker 运行 nuxt3
【发布时间】:2022-10-19 20:52:35
【问题描述】:

我使用此命令构建我的 Nuxt 3 应用程序,该命令在文件夹.output 中生成所有内容:

npm run build

这是我用来构建 docker 文件的 DockerFile:

FROM node:17-alpine3.14

ADD .output /webapp/.output

EXPOSE 3000

WORKDIR /webapp/.output

ENTRYPOINT ["node", "/webapp/.output/server/index.mjs"]

docker-compose.yml 看起来像这样:

version: '3.3'

services:
  app-web:
    build: .
    ports:
      - 3000:3000

一切运行没有任何错误,但我希望通过输入地址http://localhost:3000 来查看应用程序,但没有任何反应。

非常感谢任何帮助。

【问题讨论】:

  • exec 到您的容器并尝试从那里卷曲您的应用程序,如果它正在工作,那么您可能需要检查您的端口。
  • @Mayur 这不是问题。请求返回错误“文档为空”

标签: docker nuxtjs3


【解决方案1】:

我的做法:

Docker Compose(用于开发)

version: '3'
services:

  web-app:
    image: node:17-alpine
    container_name: web-app
    command: [sh, -c, "npm i && npm run dev"]
    ports:
      - "3000:3000"
    working_dir: '/webapp'
    tty: true
    volumes:
      - './:/webapp/'
    environment:
      HOST: 0.0.0.0
      PORT: 3000

码头工人(生产)

FROM node:17-alpine

ENV HOST='0.0.0.0'
ENV PORT='3000'

WORKDIR /webapp

COPY ./ /webapp

RUN npm install
RUN npm run build

EXPOSE 3000

CMD [ "npm", "run", "start" ]

【讨论】:

    【解决方案2】:

    这是工作版本:

    FROM node:17-alpine3.14
    
    ADD .output /webapp/.output
    
    EXPOSE 3000
    
    WORKDIR /webapp/.output
    
    ENV NUXT_HOST=0.0.0.0
    ENV NUXT_PORT=3000
    
    CMD ["node", "/webapp/.output/server/index.mjs"]
    

    【讨论】:

      【解决方案3】:

      这是我们用来运行 nuxt3 设置的 Dockerfile!

      # see https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
      ARG NODE_VERSION=node:16.14.2
      
      FROM $NODE_VERSION AS dependency-base
      
      # create destination directory
      RUN mkdir -p /app
      WORKDIR /app
      
      # copy the app, note .dockerignore
      COPY package.json .
      COPY package-lock.json .
      RUN npm ci
      
      FROM dependency-base AS production-base
      
      # build will also take care of building
      # if necessary
      COPY . .
      RUN npm run build
      
      FROM $NODE_VERSION-slim AS production
      
      COPY --from=production-base /app/.output /app/.output
      
      # Service hostname
      ENV NUXT_HOST=0.0.0.0
      
      # Service version
      ARG NUXT_APP_VERSION
      ENV NUXT_APP_VERSION=${NUXT_APP_VERSION}
      
      # Run in production mode
      ENV NODE_ENV=production
      
      # start the app
      CMD [ "node", "/app/.output/server/index.mjs" ]
      

      你可以在这里找到整个设置:https://github.com/sidestream-tech/sidebase

      【讨论】:

        猜你喜欢
        • 2022-12-11
        • 2018-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-05
        • 2020-07-05
        • 2018-02-05
        相关资源
        最近更新 更多