返回
评论
Docker部署nuxtjs应用
有个主页的项目需要用到ssr。所以选择nuxtjs进行主页开发。关于nextjs的使用可以到官方文档进行查看。这里主要是记录一下docker部署nuxtjs应用的一些小事情。
Dockerfile
通过dockerfile可以build一个docker镜像。dockerfile内容如下:
FROM node:11.13.0-alpine
# create destination directory
RUN mkdir -p /app
WORKDIR /app
# copy the app, note .dockerignore
COPY . /app
RUN npm install
# build necessary, even if no static files are needed,
# since it builds the server as well
RUN npm run build
# expose 3000 on container
EXPOSE 3000
# set app serving to permissive / assigned
ENV NUXT_HOST=0.0.0.0
# set app port
ENV NUXT_PORT=3000
# start the app
CMD [ "npm", "start" ]
注意:
- 部署 Nuxt.js 服务端渲染的应用不能直接使用 nuxt 命令,而应该先进行编译构建,然后再启动 Nuxt 服务。
- 在build之前,需要ignore以下三个规则文件(手动创建.dockerignore文件):
node_modules
npm-debug*
.nuxt
否则会出现镜像build失败的情况。
运行命令:docker run -it -d -p 3000:3000 gzhiyi/nuxt-homepage 后面为镜像build后的名称,注意按实际情况进行更改。
nginx配置
Docker运行node服务,如果需要外部访问的话,需要nginx反向代理。具体配置:
server {
listen 80;
server_name *your servername*;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
访问
需要配置host才能访问,如下:
*your serverip* *your servername*