如何用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 ...
随机推荐
- Ubuntu · Docker —— 从入门到实践
https://yeasy.gitbooks.io/docker_practice/appendix/repo/ubuntu.html#1604-%E7%89%88%E6%9C%AC
- ASP.NET Web Pages 的冲突版本问题
随着VS版本和.NET MVC版本.EF的版本的不断更新,虽然很多功能随着版本的提升而更完善,但对于旧版本开发的软件就有点悲催了,或许很多开发者都遇到类似的问题! 最近有一个项目是用.NET MVC3 ...
- JS本地存储信息的实现方式(localStorage 与 userData)
详细介绍请看: http://www.cnblogs.com/beiyuu/archive/2011/07/20/js-localstorage-userdata.html 里面涉及到的 demo 代 ...
- ARM 编程平台+coresight
http://www.keil.com/product/ DS-5:http://www.cnblogs.com/njseu/p/6023081.html http://www.arm.com/pro ...
- 如何运行Hadoop自带的例子
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar wordcount /WordCount/WordC ...
- 对一个前端使用AngularJS后端使用ASP.NET Web API项目的理解(4)
chsakell分享了一个前端使用AngularJS,后端使用ASP.NET Web API的项目. 源码: https://github.com/chsakell/spa-webapi-angula ...
- SQL 中的语法顺序与执行顺序(转)
很多程序员都很抵触SQL.其实SQL是一整为数不多的声明性语言,只是它的运行方式完全不同于我们所熟知的命令行语言.面向对象的程序语言.甚至是函数语言. 今天大家共同学习下SQL的语法顺序与执行顺序.( ...
- ASIHTTPRequest学习笔记
1.creating requestsrequest分为同步和异步两种.不同之处在于开始request的函数:[request startSynchronous];[request startAsyn ...
- AOP拦截器 表达式写法
Pointcut 是指那些方法需要被执行"AOP",是由"Pointcut Expression"来描述的.Pointcut可以有下列方式来定义或者通过& ...
- com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed. 解决
ERROR - No operations allowed after connection closed. 2011-12-07 11:36:09 - ERROR - query failed or ...