Giter Club home page Giter Club logo

nodejs-docker-image's Introduction

nodejs-docker-image

本代码演示了基于Docker创建一个简单的Node.js开发环境

代码使用方法

# 下载代码
git clone https://github.com/ijse/nodejs-docker-image.git
cd nodejs-docker-image

# 开发环境
## 构建镜像
docker build --force-rm -t ijse/nvm-dev -f ./Dockerfile_dev .

## 运行容器
docker run -it -v /nodejs-docker-image:/workspace --name my-project -p 3000:8080 ijse/nvm
## 此时会启动进入容器内的bash提示符,在这里可以安装程序依赖(对于容器平台),及启动调试程序
npm install && node index.js

# 生产环境
## 构建镜像
docker build --force-rm -t ijse/nvm -f ./Dockerfile .

## 运行容器
docker run --name my-project ijse/nvm

于是,容器中的程序便运行起来了

注意:

  • 如果是在Windows或Mac系统下,由于Docker是运行在虚拟机里的,所以访问时localhost要换为虚拟机的ip地址。
  • 可以通过docker inspect <container_id>来获取运行的container的ip和端口信息

更多内容

参照博客文章:http://www.ijser.cn/install-nvm-on-docker/

nodejs-docker-image's People

Contributors

ijse avatar

Stargazers

章 avatar  avatar Caesar73 avatar 江南一根葱 avatar PsAiL avatar jingchenxu avatar LooChao avatar GloomHu avatar  avatar Wilson avatar 龙天 avatar  avatar

Watchers

 avatar James Cloos avatar huachen0216 avatar

nodejs-docker-image's Issues

寻求理想的 nodejs docker 化的方式

关于代码的处理,对于 NodeJS 环境,目前还没找到理想的、docker的方式。
求指点~

  • 如果打包到 image,不方便变更。这个博主有提到。需要 rebuild image,或者 docker cp 源码到 container。
  • 如果采用 mount 的方式,那么需要在创建容器的时候,执行 npm install 之类的命令,不是 docker 的 best practice。
  • 如果用 docker-compose 每次更新时 rebuild,生产环境还可以,开发环境更新这么频繁,很影响效率。

个人不熟悉 nodejs,不知道能否将除 package.json 外的源码放在一个文件夹(假设叫 src),并与 node_modules 文件夹同级?如果可以,那么在 Dockerfile 中 npm install 运行环境,在 docker run 的时候 mount 源码到 src,解决了以上的问题。

另外,关于博主提到的以下说法,docker 官方的建议是分开,不同的服务独立运行,以多个微服务的形式组成一个完整的服务。

我们可以把这些服务都打包进一个镜像中,也可以分开。

node_moudle是否可移植?

我在外部装的依赖,在容器里面就会运行出错。我也做了一个php的docker开发环境组,但是转到node就有问题了。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.