记一次docker上部署nuxt踩的坑

首先踩坑肯定是因为不熟悉docker加上不熟悉nuxt

  1. 在项目根目录创建Dockerfile文件
  2. 输入以下内容
    FROM node:13.11.0
    MAINTAINER wanna
    ENV NODE_ENV=production
    ENV HOST 0.0.0.0
    RUN mkdir -p /app
    COPY . /app
    WORKDIR /app
    EXPOSE 3000
    RUN npm config set registry https://registry.npm.taobao.org
    RUN npm install
    RUN npm run build
    CMD ["npm",  "start"]
  3. 运行命令docker build -t beego-top-nuxt .构建镜像
  4. 启动镜像docker run -dt -p 8080:3000 beego-top-nuxt
    此处有个坑目前没解决,现在项目实际没有开启,要到镜像里面
    npm run serve &才能正常访问项目,待解决后更新,或者哪位小伙伴告诉我下改怎么解决啊
  5. 访问 localhost:8080

    问题已解决官方文档有解释,服务器上应该把target的值设为server 所以docker本身的配置没问题

此时可能会面临下一个问题修改docker 容器后怎么保存到镜像
本来想去加到docker版块,发现没有这个版块,那就记录在这下面吧

docker commit -a "wanna" -m "修改nuxt配置" -p 0963d3b7cdcb  beego-top-nuxt:v2

-a :提交的镜像作者
-c :使用Dockerfile指令来创建镜像
-m :提交时的说明文字
-p :在commit时,将容器暂停
0963d3b7cdcb 是修改了的容器id
beego-top-nuxt:v2 是新版本的镜像名字

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 3

一般情况下 docker run -dt -p 8080:3000 beego-top-nuxt 就可以了, docker ps 有运行就行, 另外一点就是端口先试试3000:3000, localhost:3000 访问即可

3年前 评论

@clancy 我的问题就是第五点~~必须进入容器手动启动 也就是CMD ["npm", "start"]没跑起来

3年前 评论

我写个例子,本地可以跑, 不需要进容器,你看看 :

FROM node:alpine ENV NODE_ENV=production ENV HOST 0.0.0.0 RUN mkdir -p /app COPY . /app WORKDIR /app EXPOSE 3000 RUN npm config set registry registry.npm.taobao.org RUN npm install RUN npm run build CMD ["npm", "start"]

3年前 评论
Iwanna (楼主) 3年前
Iwanna (楼主) 3年前
dandanMonster 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!