如何用Docker建立一个Node.js的开发环境
- 建立一个文件夹
- 用管理员身份打开powershell.
- 在文件夹下面运行npm init, 根据提示填入信息,以便产生一个package.json文件。
- 在文件中加入需要的dependencies,例如:
- {
- "name":
"docker_web_app", - "version":
"1.0.0", - "description":
"Node.js on Docker", - "author":
"First Last <first.last@example.com>", - "main":
"server.js", - "scripts": {
- "start":
"node server.js" - },
- "dependencies": {
- "express":
"^4.13.3" - }
- }
|
|
4. 创建一个app.js文件,例如:
|
const express = require('express') const app = express()
app.get('/', function (req, res) { res.send('Hello World!') })
app.listen(3000, function () { console.log('Example app listening on port 3000!') }) |
5. 创建一个空文件名字为Dockerfile,填入如下内容:
|
FROM node:boron
# Create app directory WORKDIR /app
# Install app dependencies COPY package.json . # For npm@5 or later, copy package-lock.json as well # COPY package.json package-lock.json ./
RUN npm install
# Bundle app source COPY . .
EXPOSE 3000 CMD [ "node", "app.js" ] |
6. 创建名为.dockerignore的文件,并输入如下的内容:
|
node_modules npm-debug.log |
这是为了防止本地的module和debug log被拷贝进docker image.
(我这一步无法做,因为没有办法创建这样的文件,总是要求必须有文件名。需要进一步调查)
7. Build image
|
docker build -t nodehello . |
8. 运行image.
|
docker run -p 3000:3000 -d nodehello |
如果运行成功,会出现Example app listening on port 3000的字样。
这时访问http://localhhost:3000 就可以访问app.js中定义的内容了。
参考文章:
https://nodejs.org/en/docs/guides/nodejs-docker-webapp/
https://www.distelli.com/docs/tutorials/build-and-deploy-nodejs-with-docker/
https://expressjs.com/en/starter/hello-world.html
https://docs.docker.com/get-started/part2/#build-the-app
如何用Docker建立一个Node.js的开发环境的更多相关文章
- 《Node.js入门》CentOS 6.5下Node.js Web开发环境搭建笔记
近期想尝试一下英特尔的基于WebRTC协同通信开发套件,所以须要在本地搭建Node.js Web的开发測试环境. 这里讲的是CentOS 下的搭建方法.使用Windows的小伙伴请參考: <No ...
- node.js之开发环境搭建
一.安装linux系统 (已安装linux可跳此步骤) 虚拟机推荐选择:VirtualBox 或者 Vmware (专业版永久激活码:5A02H-AU243-TZJ49-GTC7K-3C61N) 我这 ...
- Ubuntu 14.04下搭建Node.js的开发环境
最近想找一个轻量级且支持快速开发的服务开发平台,选来选去选择了Node.js,当时有几种选择: Python + Django(用过Django,虽然开发快速,但是感觉性能并不太好). Ruby + ...
- Windows 7下Node.js Web开发环境搭建笔记
Node.js是什么? 我们看看百科里怎么说的?JavaScript是一种运行在浏览器的脚本,它简单,轻巧,易于编辑,这种脚本通常用于浏览器的前端编程,但是一位开发者Ryan有一天发现这种前端式的脚本 ...
- 建立一个node.js服务器(使用express搭建第一个Web环境)
一.官网下载node.js 下载地址:https://nodejs.org/en/download/ 根据向导,下一步安装就可以了! 二.使用express搭建Web环境 express是一个开源的n ...
- Docker学习之——Node.js+MongoDB+Nginx环境搭建(一)
最近在学习Node.js相关知识,在环境搭建上耗费了不少功夫,故此把这个过程写下来同大家分享一下,今天我先来介绍一下Docker,有很多人都写过相关知识,还有一些教程,在此我只想写一下,我的学习过程中 ...
- 部署node.js的开发环境
1.进入Node.js的官方网站下载安装包: http:nodejs.org 2.安装后打开cmd的dos窗口(在path环境变量中查看到有nodejs说明安装成功): 3.运行node.
- 搭建Node.js Redis开发环境
创建项目 初始化为node项目 $npm init 安装redis 安装@types/node, @types/redis, typescript 初始化TypeScript 配置ts ...
- node.js vue开发环境搭建
开发工具安装 1.安装node.js 双击安装程序 node-v8.9.3-x64.msi,进行安装即可 2.设置taobao镜像 npm config set registry https://re ...
随机推荐
- 图解tensorflow 源码分析
http://www.cnblogs.com/yao62995/p/5773578.html https://github.com/yao62995/tensorflow
- WinForm基于插件开发实现多项配置存储
一.课程介绍和实例在线演示 明人不说暗话,跟着阿笨一起玩WinForm.本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的一部分,阿笨后续会计划将实际项目中的一些比较实用的关于C ...
- How To: Implement a Major Upgrade In Your Installer
When creating an .msi-based installer, you are strongly encouraged to include logic that supports Wi ...
- 淘宝应对"双11"的技术架构分析
原文地址:http://kb.cnblogs.com/page/193670/ 双“11”最热门的话题是TB ,最近正好和阿里的一个朋友聊淘宝的技术架构,发现很多有意思的地方,分享一下他们的解析资料: ...
- 通过连接池和字段索引,提升单点登录cas的性能
cas是多个系统的中心认证,认证的过程就是用户的登录信息和数据库中的信息匹对的过程,假设某一时刻登录的人数非常多,须要频繁的读取数据库,数据库连接的管理就是问题. 前天測试评教时无意之中把单点登录的问 ...
- sharepoint 2013 网站集解锁
前言 最近碰到这样的一个问题,就是SharePoint 站点备份(Backup-SPSite)的时候,速度特别慢,然后网站变成只读状态(备份过程中只读属于正常现象).但是,自己手欠把备份命令的Powe ...
- IT狂人第一至四季/全集The IT Crowd迅雷下载
本季第一至四季 The IT Crowd (2006)看点:<IT狂人>史上最囧,最雷,最脑残,最出乎意料,最不按常理出牌的IT “精英们”登上银屏了.让超擅长收发邮件.单击和双击鼠标的I ...
- ios之如何读取plist
- (NSDictionary*)contactsInfoFromPlistNamed:(NSString*)plistName { NSString *path = [[NSBundle mainB ...
- AsyncTask和Handler的优缺点
二者的区别我就不多说了,两个东西共同点都是为了解决耗时操作的问题,主要区别在于一个流程完善,拿来就用,一个偏向自主定制,扩展性高. 这里面有个谁是轻量级,谁适合大任务的问题:http://blog.s ...
- SVG.js 元素操作整理(一)
一.属性操作Attributes var draw = SVG('svg1').size(300, 300); //attr() 属性操作 //设置属性的值 var rect = draw.rect( ...