Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明,相当于快速构建时候的脚本文件
docker pull node:12.14.0
{
"name": "dockerTest",
"version": "1.0.0",
"description": "Node.js on Docker",
"author": "NNNNzs",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "4.13.3"
}
}
'use strict';
const express = require('express');
const PORT = 8888;
const app = express();
app.get('/', function (req, res) {
res.send('Helloworld\n');
});
app.listen(PORT);
console.log('Running on http://localhost:' + PORT);
FROM node:12.14.0
RUN mkdir -p /home/Service
WORKDIR /home/Service
COPY . /home/Service
RUN npm install --registry=https://registry.npm.taobao.org
EXPOSE 8888
CMD npm start
## 如果想运行多条指令可以这样:
## CMD git pull && npm install && npm start
docker build -t mynodeapp .
docker run -d -p 80:8888 --name node-test mynodeapp
docker ps -a
curl localhost:80
正常返回helloword就OK了,具体上外网可能还需要宿主机暴露端口
以一个nodejs项目为例
From node:12.14.0
#创建文件夹
RUN mkdir -p /usr/bz-front-tools
#将dist目录拷贝到镜像里
COPY . /usr/bz-front-tools
#指定工作目录
WORKDIR /usr/bz-front-tools
#安装依赖及构建node应用
RUN npm install --production --registry=https://registry.npm.taobao.org
#配置环境变量
ENV HOST 0.0.0.0
ENV PORT 3000
#定义程序默认端口
EXPOSE 3000
#运行程序命令
CMD ["npm","start"]