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 命令,查看容器内的执行日志。

 

相关内容

热门资讯

从“酿酒”到“酿城”,宜宾白酒... 长江之畔,酒香飘扬。 12月19日,2025中国国际名酒博览会如约启幕,宜宾这座“中国白酒之都”,再...
世界酒旅胜地及2025四川酒旅... 12月19日上午,2025中国国际名酒博览会开幕式在酒都宜宾举行。在开幕式上,发布了“2025年四川...
资阳美食如何逆袭?从推介会看资... 你是否曾听说过资阳?这个曾被调侃为“美食荒漠”的地方,如今正在以其独特的美食文化吸引着越来越多的游客...
美食背后的故事:家常菜承载的回... 在一道美食的背后,总归会存在着一个值得去细细品味的故事,也许它是源于一次偶然间所进行的尝试,又或许它...