docker 部署后端egg.js纯净版之Dockerfile
创始人
2025-05-29 07:17:09

我把egg.js文件夹上传到阿里云

在本地npm run dev 是正确的运行的,地址是http://127.0.0.1:7001

 

 在项目根目录新建 Dockerfile 文件,编辑内容如下

# 设置基础镜像,如果本地没有该镜像,会从Docker.io服务器pull镜像
FROM node:16.18.0# 配置环境变量
ENV NODE_ENV production# 这个是容器中的文件目录
RUN mkdir -p /usr/src/app # 设置工作目录
WORKDIR /usr/src/app# 拷贝package.json文件到工作目录
# !!重要:package.json需要单独添加。
# Docker在构建镜像的时候,是一层一层构建的,仅当这一层有变化时,重新构建对应的层。
# 如果package.json和源代码一起添加到镜像,则每次修改源码都需要重新安装npm模块,这样木有必要。
# 所以,正确的顺序是: 添加package.json;安装npm模块;添加源代码。
COPY package.json /usr/src/app/package.json# 安装npm依赖(使用淘宝的镜像源)
# 如果使用的境外服务器,无需使用淘宝的镜像源,即改为`RUN npm i`。
RUN npm i --production --registry=https://registry.npm.taobao.org# 拷贝所有源代码到工作目
COPY . /usr/src/app# 暴露容器端口
EXPOSE 7001CMD npm start

这段代码 直接参考某大佬的

通过 Docker 部署 nodejs -- egg 项目 - 掘金

 只是我改了端口7001,并在阿里云的防火窗开了端口7001

1:在 egg 项目的 package.json 文件中,在 start 启动项中,--daemon 是后台启动。如果使用 docker 容器,需要去除 --daemon

2:进入我的 项目根目录,执行镜像打包命令, 该镜像的名称为myegg

docker image build -t myegg .

 然后 docker image ls 能看到一个myegg的镜像

3:最后创建容器

docker run -itd --network=host --name myegg -p 7001:7001 myegg

 能够看到名称为myegg的容器 状态是up

 打开浏览器 ip地址+7001端口号

可能出现的问题

如果发现容器没有正常启动,可以执行 docker logs -f containerID 命令,查看容器内的执行日志。

 

相关内容

热门资讯

百米炮仗花长廊盛放,橙红瀑布倾... 刷爆朋友圈、霸屏短视频,最近南宁人的春日快乐,被一条百米炮仗花长廊狠狠承包了。2月12日,暖阳洒向邕...
多所高校推出一分钱年夜饭,年味... 春节即将来临,年味愈加浓厚。对于选择留在校园过年的同学们来说,年夜饭成了一个热门话题。那么,留校过年...
【客家】不蒸甜粄不过年!客家人... 客家人有“不蒸甜粄不过年”的说法,在琳琅满目的年货里,甜粄是绝对的主角,更是亲戚拜年赠礼的首选。每逢...
马年开运指南!麦玲玲现身广州花... “玲玲姐有什么能帮大家马年行大运的技巧,可以教给街坊们?” “你还记得若曦吗?”…… 2月12日,春...