Docker基础:10.dockerfile构建前端node服务

86 阅读1分钟

准备

# 创建项目文件夹
$ mkdir my-express-app && cd my-express-app

# 初始化package.json
$ npm init -y

# 安装express
$ npm i express

# 创建入口文件
$ mkdir src && cd src && touch src/index.js

src/index.js

const express = require('express');
const app = express();

app.get('/', function (req, res) {
  res.send('Hello World');
})

app.listen(3000);

创建Dockerfile文件

$ cd my-express-app && touch Dockerfile

Dockerfile内容如下:

# 设置node18基础镜像
FROM node:18-alpine

# 设置工作目录为app
WORKDIR /app

# 复制当前目录下的所有文件到app目录
COPY . .

# 运行npm install命令
RUN npm install --omit=dev

## 启动容器时指定默认执行的命令
CMD ["node", "src/index.js"]

## 暴露3000端口
EXPOSE 3000

构建镜像

# 构建一个REPOSITORY为express-hello, Tag为v1.0的镜像
$ docker build -t express-hello:v1.0 .

启动容器

$ docker run -itd -p 3001:3000 express-hello:v1.0

# 测试
$ curl localhost:3001
Hello World