docker上部署egg项目——图文详解
在docker上部署egg项目——图文详解
一、部署环境准备:
- 腾讯云服务器上的cetnos7(或者VMware上的cetnos7——”需要能够联网”)。
- linux上安装好了docker。
- 熟悉egg脚手架的安装。链接: 官网安装教程
- 了解dockerfile的编写
- 目录说明:linux上egg的安装目录/home/dockerfile/egg-example,会和docker里的egg项目的/home/dockerfile/egg-example进行挂载。
二、安装教程:
(1)安装egg脚手架
// 安装脚手架
mkdir egg-example && cd egg-example
npm init egg --type=simple
npm i
获取如下目录:
(2)之后在package,json的同级目录创建一个Dockerfile文件:
文件内容:
# 设置基础镜像,如果本地没有该镜像,会从Docker.io服务器pull镜像
FROM node
# 创建app目录
RUN mkdir -p /home/dockerfile/egg-example
# 设置工作目录
WORKDIR /home/dockerfile/egg-example
# 所以,正确的顺序是: 添加package.json;安装npm模块;添加源代码。
COPY package.json /home/dockerfile/egg-example/package.json
# 安装npm依赖(使用淘宝的镜像源)
# 如果使用的境外服务器,无需使用淘宝的镜像源,即改为`RUN npm i`。
RUN npm i --registry=https://registry.npm.taobao.org
# 拷贝所有源代码到工作目录
COPY . /home/dockerfile/egg-example
# 暴露容器端口
EXPOSE 7001
# 启动node应用
CMD npm run dev
(3)生成对应的镜像
- 首先修改package.json里的内容:
- 输入构建镜像命令:
docker build -t egg_demo .
//后面这个.一定要记得加
完成之后会得到刚刚生成的镜像
3. 根据生成的镜像生成对应的容器
// 根据自己的需求进行生成
docker run -d -v /home/dockerfile/egg-example:/home/dockerfile/egg-example -p 9033:7001 egg_demo03
注释:默认egg的端口为7001,所以上面选择暴露的是7001端口,通过映射就可以通过linux的地址+端口访问到egg项目。
测试效果:
三、总结
- 到这里简单的egg项目在docker的部署就完成了,需要注意的是里面标注的几个细节。
- 如果自己对dockerfile有更加深刻的理解,可以自己编写dockerfile文件,根据自己的需求进行挂载和端口映射之类的。
- 本人记录这个也是做一个笔记,都是些基础的知识,希望各位大神不喜勿喷!!!!!