使用Docker部署nodeJS+MongoDB应用

需要提前安装node,mongo镜像

1. 构建node应用

在node应用根目录下新建Dockerfile文件,内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
FROM node
# 创建工作目录
RUN mkdir /app
WORKDIR /app
# 复制项目文件
COPY . /app
# 声明暴露端口
EXPOSE 8000
# 安装包
RUN [ "rm", "-rf", "node_modules"]
RUN [ "npm", "install"]
# 启动应用
CMD [ "npm", "run", "s"]

修改node应用连接数据库方式

1
2
// mongoDB下面会介绍
mongoose.connect('mongodb://mongoDB/lp-platform');

开始构建

$ docker build -t learn-app:v1 .

2. 启动mongoDB容器

$ docker run -it –name mongodb mongo

 后台运行

$ docker run -d –name mongodb mongo

3. 启动node应用容器

$ docker run -it -p 8000:8000 –name learn-app –link mongodb:mongoDB learn-app:v1

需要注意的是这里的 link 命令的作用是连接node容器和mango数据库容器,这样在node应用中就可以使用mongoDB来连接数据库

4. 完成

容器启动完成之后就可以在浏览器中访问了,这里记录一下我遇见的一个问题:

容器启动完成之后,通过curl命令是可以正常访问node
APP,但是在浏览器中并不能访问,一直加载中,尝试了很多方法之后发现重启浏览器可以解决。。。。。。。。。