基于node/mongo的App Docker化测试环境搭建
搭建步骤:
1、宿主机环境
ubuntu 14.4宿主机环境(云主机);
安装wget与curl(sudo apt-get install wget curl)
2、安装Docker
(wget -qO- https://get.docker.com/ | sh)
3、安装Docker Compose编配工具(使用python pip工具)
*安装PIP
(sudo apt-get install python-pip)
*安装Docker Compose
(pip install docker-compose)
4、拉取镜像
(docker pull node:latest/mongo:latest)
5、创建本地仓库
mkdir nodeapp
cd nodeapp
# 下载并解包应用
wget *appurl*tarball
tar xvf *appurl*tarball
6、构建Dockerfile
touch(vi) Dockfile
FROM node
MAINTAINER zhengsl<zhengsl@satimage.cn>
ENV REFRESHED_AT --
# 运行新建目录命令
RUN mkdir -p /var/log/nodeapp
# 将构建目录中的satimage目录打包到容器的/opt/nodeapp目录
ADD satimage /opt/nodeapp
# 设置当前工作目录
WORKDIR /opt/nodeapp/bin
# 运行npm根据packages.json更新包
# RUN npm install
# 挂载目录
VOLUME ["/var/log/nodeapp"]
# 暴露3000端口
EXPOSE
# 接入点运行
ENTRYPOINT ["node", "www"]
7、构建镜像
(docker build -t zhengsl/satimage .)
8、构建并运行容器
(
docker run -d --name imagemeta mongo;
docker run -d --name pushimage -p 3000:3000 --link imagemeta:mongo zhengsl/satimage
)
or:
测试:(docker run -d --name pushimage -v "$(pwd)":/data --link imagemeta:mongo -p 3000:3000 zhengsl/satimage)
or:
使用fig进行封装用于自动化操作
pushimage:
build: .
ports:
- "3000:3000"
links:
- imagemeta
imagemeta:
image: mongo
9、推送镜像(docker login user/pw/email;docker push zhengsl/satimage)
注:
代码更新内容:
1、配置文件路径与程序启动位置(设置node启动目录为bin)
2、容器链接后,mongo的路径为(更新bin目录的clientMongoUtil.js line2):
'mongodb://'+
process.env.MONGO_PORT_27017_TCP_ADDR+
':'+
process.env.MONGO_PORT_27017_TCP_PORT+
'/sasmacDatabase'
环境变量如下图所示:

基于node/mongo的App Docker化测试环境搭建的更多相关文章
- docker公司测试环境搭建总结
1.防火墙转发规则: [root@docker ~]# firewall-cmd --list-allpublic (active) target: default icmp-block-invers ...
- Ubuntu 基于Docker的TensorFlow 环境搭建
基于Docker的TensorFlow 环境搭建 基于(ubuntu 16.04LTS/ubuntu 14.04LTS) 一.docker环境安装 1)更新.安装依赖包 sudo apt-get up ...
- EOS Dapp开发(1)-基于Docker的开发环境搭建
随着EOS主网的上线,相信基于EOS的Dapp开发会越来越多,查阅了很多资料相关的开发资料都不是很多,只能自己摸索,按照网上仅有的几篇教程,先git clonehttps://github.com/E ...
- LIGHTX-CMS —— 基于 Node.js,Express.js 以及 SQLite 3 搭建的个人博客系统
概述 LIGHTX-CMS 是我基于 Node.js,Express.js 以及 SQLite 3 搭建的个人博客发布系统. 项目本身可以拿来部署个人博客网站,同时我认为其也适合用以新手学习 Node ...
- Django学习——Django测试环境搭建、单表查询关键字、神奇的双下划线查询(范围查询)、图书管理系统表设计、外键字段操作、跨表查询理论、基于对象的跨表查询、基于双下划线的跨表查询
Django测试环境搭建 ps: 1.pycharm连接数据库都需要提前下载对应的驱动 2.自带的sqlite3对日期格式数据不敏感 如果后续业务需要使用日期辅助筛选数据那么不推荐使用sqlite3 ...
- kubernetes实战之consul简单测试环境搭建及填坑
这一节内容有点长,我们将介绍如何基于docker搭建一client一server的consul测试环境,以及如何搭建多server consul测试集群.在基于docker搭建多server的cons ...
- 【转1】Appium 1.6.3 在Xcode 8, iOS 10.2(模拟器)测试环境搭建 经验总结
Appium 1.6.3 在Xcode 8, iOS 10.2(模拟器)测试环境搭建 经验总结 关于 Appium 1.6.3 在Xcode 8, 10.2 的iOS模拟器上的问题很多,本人也差点放弃 ...
- App自动化测试-1.App自动化介绍和环境搭建
App自动化测试-1.App自动化介绍和环境搭建 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-b ...
- 『与善仁』Appium基础 — 14、Appium测试环境搭建
目录 1.Appium测试环境搭建整体思路 (1)Android测试环境搭建 (2)Appium测试环境搭建 (3)测试脚本语言的环境搭建 2.Appium在Android端和IOS端的工作流程 (1 ...
随机推荐
- work2
回答问题: 描述在这么多相似的需求面前, 你怎么维护你的设计 (父类/子类/基类, UML, 设计模式, 或者其它方法) 让整个程序的架构不至于崩溃的? 答:诚然,问题给出了很多选项如-a,-v,- ...
- CSS样式表优先级
使用CSS样式表一共有2种方式:内部和外部,其中内部分为行内样式和嵌入式,外部分为导入式和链接式. 如果需要在不同的方式中设定同一个属性的时候,样式的优先级别就出现了. 测试代码如下: red.css ...
- RC522 射频读卡器模块(MINI型)
一.硬件: 二.[主芯片介绍] MF RC522是应用于13.56MHz非接触式通信中高集成度的读写卡芯片,是NXP公司针对"三表"应用推出的一款低电压.低成本.体积小的非接触式读 ...
- iOS 获取当前月份的天数(转)、
转:http://www.cnblogs.com/kingbo/p/3966855.html . 获取当前月份有多少天 NSCalendar *calendar = [NSCalendarcurren ...
- hdu 5445 Food Problem 多重背包
Food Problem Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5 ...
- LeetCode144:Binary Tree Preorder Traversal
Given a binary tree, return the preorder traversal of its nodes' values. For example: Given binary t ...
- win7系统升家庭版级为旗舰版的方法
在使用的便利性上,两者没有太大差别,不过有些高级功能是家庭版所没有的,所以我们很多人都希望升级为旗舰版,那么我们需要重新安装系统吗?显然没有这么麻烦,我们只需要简单的几个步骤即可. 步骤/方法 ...
- 【面试题】如何让C语言自动发现泄漏的内存
1. 题目 改造malloc和free函数,使C语言能自动发现泄漏的内存,在程序退出时打印中遗漏的内存地址和大小. 2. 思路 用一个链表来记录已经分配的内存地址.在malloc时,把分配的内存地址和 ...
- 使用GDB调试Android NDK native(C/C++)程序
使用GDB调试Android NDK native(C/C++)程序 先说明下,这里所谓的ndk native程序跟Android上层java应用没有什么关系,也不需要涉及jni来封装native接口 ...
- java基础学习总结四(控制语句<顺序、选择、循环>、方法)
一:结构控制语句 结构控制语句分为3种,顺序语句.选择语句.循环语句. 1:顺序语句 就是自上而下的执行程序,默认执行顺序. 2:选择语句 if结构语句:如果满足条件,则执行该语句. if...els ...