记一次前端服务Docker镜像制作(nodejs+pm2)

本文详细介绍如何通过Docker部署React前端服务,包括选择基础镜像、安装Node.js及PM2、配置NPM镜像源、创建Dockerfile并构建镜像等关键步骤。

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

前端开发同志找到我们,说是要部署一个新的react服务,
根据前端的描述,需要我们制作服务启动Docker镜像,
因此记录制作步骤如下:

一、依赖原ubuntu16.04镜像

在这里插入图片描述

# 启动Ubuntu镜像
docker run -dit ubuntu:16.04 
# 进入容器运行环境
docker exec -it xxx bash

# 替换ubuntu16.04镜像源为阿里镜像源
vim /etc/apt/sources.list

deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main

deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe

deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe

# 更新源
apt-get update
# 安装常用软件
apt-get install curl 
apt-get install vim 
apt-get install net-tools

二、在镜像内安装nodejs

参考:
https://www.cnblogs.com/feiquan/p/11223487.html
https://sharp.pixelplumbing.com/install#custom-prebuilt-binaries

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
# 验证安装是否成功
node -v
npm -v
# 修改npm镜像源
npm config set registry https://registry.npm.taobao.org
# 查看
npm config get registry
# 如果不需要可以直接删除
# npm config rm registry

# 后续在npm install具体项目时需依赖sharp,从github下载非常慢,故修改其为国内镜像源并且预先安装
npm config set sharp_binary_host "https://npm.taobao.org/mirrors/sharp"
npm config set sharp_libvips_binary_host "https://npm.taobao.org/mirrors/sharp-libvips"
npm install sharp

在这里插入图片描述

三、在镜像内安装pm2

参考:https://www.jianshu.com/p/e15fd72727fe

npm install -g pm2
# 验证安装成功
pm2 -v

四、提交nodejs+pm2基础镜像

# 在镜像内创建源代码路径
mkdir nodejs
# 提交容器为nodejs基础镜像
docker commit xxx docker-hub.xxx/tsp2/nodejs-pm2:v1

五、制作服务启动Dockerfile

Dockerfile文件

# 依赖第四步中提交的基础镜像
FROM docker-hub.xxx/tsp2/nodejs-pm2:v1
# 拷贝源代码
ADD nodejs /nodejs
# 设置工作目录
WORKDIR /nodejs
# 安装npm依赖
RUN npm install
# 暴露端口
EXPOSE 3000
# 启动命令(使用pm2-runtime替代原pm2,使用pm2启动后docker自动exited状)
CMD ["pm2-runtime","start", "server.js"]

注:
使用pm2-runtime代替pm2(参考:stackoverflow - Docker exits with code 0 when using pm2 start
在这里插入图片描述

构建镜像

# 构建镜像
docker build -t docker-hub.xxx/project/front-traffic:v1 .
# 提交镜像到远程仓库
docker push docker-hub.xxx/project/front-traffic:v1

六、启动Docker容器

docker run -dit --name front-traffic -p 3000:3000 docker-hub.xxx/project/front-traffic:v1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗小爬EX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值