NodeJS App and Docker

本文介绍了一个基于Node.js的应用如何使用Docker进行环境配置及部署。通过Dockerfile安装Node.js及相关依赖,并构建了一个简单的REST API应用。此外,还提供了一个Makefile用于简化构建、运行和调试流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NodeJS App and Docker

1 Dockerfile to Install the Env and App
#Run a Simple REST API based on playframework

#Prepre the OS
FROM centos:7
MAINTAINER Carl Luo <luohuazju@gmail.com>

ENV DEBIAN_FRONTEND noninteractive
ENV HTTP_PORT 8004

#Install nodeJS and foreverJS
RUN yum groupinstall -y "Development Tools"
RUN mkdir /tool/
WORKDIR /tool/

ADD install/node-v4.2.3.tar.gz /tool/
WORKDIR /tool/node-v4.2.3
RUN ./configure
RUN make
RUN make install
RUN npm install -g forever

#Install the Application
RUN mkdir -p /share/email-scan
WORKDIR /share/email-scan
ADD /dist/email-scan-1.0.tar.gz /share/email-scan

#Start the Application
EXPOSE 8004
RUN mkdir -p /app/
ADD start.sh /app/
WORKDIR /app
CMD [ "./start.sh" ]

2 Start Command start.sh
#!/bin/sh -ex

cd /share/email-scan

PORT=8004 forever start --minUptime 10000 --spinSleepTime 10000 -a -l forever.log -o ./logs/out.log -e ./logs/err.log app.js

tail -f /dev/null

The last command tail -f /dev/null is important, that will keep the container running.

3 Makefile for Run/Debug/Build
IMAGE=sillycat/email-scan
TAG=1.0
NAME=email-scan
REPOSITORY=registry.sillycat.com

prepare:
wget https://nodejs.org/dist/v4.2.3/node-v4.2.3.tar.gz -P install/

push-local:
docker push $(REPOSITORY)/$(IMAGE):$(TAG)

app-build:
gulp dist

docker-context:

build: docker-context
docker build -t $(REPOSITORY)/$(IMAGE):$(TAG) .

run-stage:
docker run -d -p 8004:8004 -e RUNNING_ENV=stage --name $(NAME) $(REPOSITORY)/$(IMAGE):$(TAG)

debug:
docker run -ti -p 8004:8004 --name $(NAME) $(REPOSITORY)/$(IMAGE):$(TAG) /bin/bash

clean:
docker stop ${NAME}
docker rm ${NAME}

logs:
docker logs ${NAME}

publish:
docker push ${IMAGE}

References:
http://sillycat.iteye.com/blog/2258021
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值