docker 部署后端egg.js纯净版之Dockerfile

我把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 7001

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

猜你喜欢

转载自blog.csdn.net/deng_zhihao692817/article/details/129601629
今日推荐