构建一个简单的express应用的Docker镜像

303 阅读1分钟
  1. 初始化npm项目
  • 初始化npm项目, 并安装express
npm init -y
npm i express --save

  • 在package.json的scripts里添加dev启动命令
{
    "scripts": {
        "dev": "node ./src/app.js"
    }
}
  1. 实现express应用的功能
  • 在项目根目录创建src/app.js文件, 作为express应用的入口
  • 实现项目功能, 这里只实现简单的demo.
const express = require('express')

const app = express()

app.get('/', (req, res) => {
    res.send('Hello Express!')
})

app.listen(3000, () => {
    console.log('App listening on port 3000.')
})
  1. 创建 Dockerfile文件

在根目录下创建一个名为 Dockerfile的文件

# 设置基础镜像
FROM node:latest

# 在容器中切换搞工作目录
WORKDIR /usr/src/app

# 将项目的 package.json 和 package-lock.json 复制到工作目录
COPY package*.json ./

# 安装项目依赖
RUN npm install

# 将代码复制到工作目录
COPY . .

# 暴露容器的端口
EXPOSE 4000

# 定义启动命令
CMD ["npm", "run", "dev"]
  1. 构建 Docker 镜像
docker image build -t my-express .
  1. 运行 Docker 容器
docker container run -p 4000:4000 my-express

此时, express应用已经在Docker容器中运行了, 可以在浏览器访问 http://localhost:4000 来访问应用.