[nodejs/npm] 基于Docker创建Nodejs前端应用
0 序
- 本文是基于
nodejs
/npm
的前端工程的容器化实践经典案例。
1 创建过程
Step1 创建前端应用工程
工程的源码目录如下
/data/nodejs/node-demo-app
---- app.js
---- Dockefile
Step1.1 编辑app.js
mkdir -p /data/nodejs/node-demo-app
vi /data/nodejs/node-demo-app/app.js
app.js
的文件内容如下:
const express = require('express')
const mongoose = require('mongoose');
const app = express();
app.get('/', (req, res) => {
res.send('Yayyy!! Containers are a piece of cake');
});
app.listen(3000, () => {
console.log('Container running with db connection');
});
Step1.2 编辑Dockfile
vi /data/nodejs/node-demo-app/Dockerfile
文件内容如下:
# 指定node版本为21.7.1 | 注:node 中默认含 npm 等指令 | 注: 需要提前下载node 21.7.1 的镜像(docker pull node:12.7.1 / docker pull node:14 / ...)
FROM node:21.7.1
# 项目在docker里面的工作目录,/app 只是随意指定的目录而已
WORKDIR /app
# 把当前目录(第1个.)下的所有文件添加到docker里面的 /app 目录
COPY . .
# build docker 镜像时运行npm命令。这一步是在docker里面跑的命令
# 根据 package.json 自动安装所需依赖
# RUN npm install
# 通过 npm init 生成 /app/package.json 等npm所需的配置文件;否则没有 /app/package.json 时构建镜像会失败
RUN npm init -y
# 添加业务源代码 app.js 中所需的依赖组件 : express / mongoose , 并通过--save 指令添加到 package.json 的 dependency 中
RUN npm install express --save
RUN npm install mongoose --save
EXPOSE 3000
# CMD [ "node", "app.js" ]
# 或等效于:
CMD node app.js
Step2 安装 Dockerfile 所需的基础镜像
docker pull node:21.7.1
docker images
Step3 基于Dockerfile构建应用镜像
cd /data/nodejs/node-demo-app
docker build -t node-demo-app:latest -t node-demo-app:1.0.0 .
[x] 或 :docker build -f /data/nodejs/node-demo-app/Dockerfile -t node-demo-app:latest -t node-demo-app:1.0.0 .
[x] 或 : docker build .
-t
: 添加标签(支持添加多个标签)-f
: 手动指定Dockerfile文件的路径
构建镜像完成后,查看一下:
docker images
Step4 基于应用镜像,创建并运行容器
docker run --name node-demo-app-1 -d -p 8000:3000 node-demo-app:1.0.0
docker ps -a
docker logs node-demo-app-1
Step5 验证
curl -v -XGET http://127.0.0.1:8000
- 查看容器内的目录情况
docker exec -it node-demo-app-1 sh -c "ls -la /app"
docker exec -it node-demo-app-1 sh -c "ls -la /"
StepX 停止运行容器、删除镜像 [可选]
docker stop node-demo-app-1
docker rm node-demo-app-1
docker rmi node-demo-app:1.0.0
docker images | grep -i node-demo-app
X 参考文献
- docker
- 容器化初学者:使用 Docker 运行 nodeJS 应用程序 - devpress.csdn.net 【推荐】
- docker简单运行nodejs应用 - jianshu 【推荐】
- docker启动node.js项目 - 博客园/千千寰宇 【推荐】
- [npm] NPM入门教程 - 博客园/千千寰宇 【推荐】
- [nodejs] NodeJs入门教程 - 博客园/千千寰宇 【推荐】
- [Docker] Docker 基础教程(概念/原理/基础操作) - 博客园/千千寰宇 【推荐】
- Dockerfile / ...
本文作者:
千千寰宇
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!