初识Docker - 搭建nodejs前端环境
基础nodejs代码
https://github.com/dreambo8563/koaLearning
这个项目的代码是我自己学习基本Koa的时候随便写的,就是几个简单接口和基本的中间件应用建立 Dockerfile
FROM node:alpine
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN apk add --update git
RUN npm install
COPY . /usr/src/app
EXPOSE 3000
CMD ["npm","start"]解读配置
- 获取node alpine的镜像 node:alpine. 这个版本的体积超小
- 设置代码目录
- 复制package.json
- 添加git 这个工具,因为这个项目里有的包在linux上有问题,所有他会自动去git上拉源码
- 运行npm install 安装各种依赖
- 复制当前目录下源码 到工作目录
- 暴露自己的3000端口在container里
- 最后运行 npm start
配置独立的redis (这个项目有代码要用redis)
根据文档创建实例
- docker run –name myReids -d redis
myRedis是我给这个container的name
启动nodejs并link redis服务
生成koa项目的image
- docker build -t koalearning . //需在koa项目下执行
运行koa项目 link redis- docker run -p 3000:3000 –name koa –link myRedis:redis -d koalearning
这里加-p 的意思是把container里的 3000端口映射到本地的3000上
到此环境搭建完成
- 必须先启动redis
- 然后再启动koa项目 因为有link的缘故
- 这是纯手动的容器间建立联系的方式,后面会改用docker-compose