docker部署项目流程(项目含nodejs,go及python)

本文详细介绍了如何编写Dockerfile,包括使用基础镜像、添加和解压压缩包、设置工作目录、暴露端口、启动脚本等步骤,并提供了构建镜像和运行容器的命令示例。重点讲解了如何在CentOS基础镜像上安装所需服务和组件。
摘要由CSDN通过智能技术生成

docker项目部署流程:

1.编写dockerfile

FROM 基础镜像名(centos最后版本,或者自定义镜像)

USER root(根据项目需求,此处自己的启动脚本含有部分安装操作需要root权限)

ADD ./src/compress/项目压缩包 /usr/local/src (此处dockerfile位置和src目录在一层,压缩包拷贝至容器内部)

RUN unzip /usr/local/src/项目压缩包 -d /data/im/xxx/soft(此处容器内解压压缩包,查阅资料说ADD可以自动解压,tar没问题,此处压缩包用的zip格式,容器内并未解压,因基础镜像含unzip命令,故手动解压)

WORKDIR /data/im/xxx/soft/项目服务名(确定工作目录,目录位置即容器进入时位置)

EXPOSE 10432 58000/udp(开放端口,个人感觉象征意义上打开,实际打开端口在容器启动时映射)

ENTRYPOINT ["sh", "server_start.sh"](运行启动脚本)

2.构建镜像所需文件结构如下:

├── 更新说明.md
├── Dockerfile
├── 使用说明.md
└── src
    └── compress
        └── 项目压缩包

3.构建镜像命令:

docker build -t 镜像名:Tag号 .

4.运行容器命令:

端口映射方式启动:

docker run -p 0.0.0.0:10432:10432 -p 0.0.0.0:58000:58000/udp -itd 镜像名:Tag号 /bin/bash

其中-itd中d含义为挂载后台,直接启动不需要加d

net方式启动:

docker run --net=host -it 镜像名:Tag号 /bin/bash

5.进入容器命令:

进入容器:

docker exec -it 容器id /bin/bash

6.查看容器日志命令:

查看容器日志:

docker logs -f --tail 10 容器id

注意:上面dockerfile中基础镜像是已经构建好的镜像,直接from基础镜像类似于centos7(阉割版)会缺少很多启动脚本所需命令,基础镜像dockerfile安装如下,但是会导致构建的镜像过大

FROM centos:7

WORKDIR /项目服务名
COPY . /项目服务名

EXPOSE 10432 58000/udp

RUN yum -y install crontabs (启动脚本含定时任务)
RUN crontab <<< '# new crontab'

RUN yum -y install vim 
RUN yum -y install net-tools

RUN yum -y install wget

RUN cd /usr/local/ && mkdir node
RUN wget https://npm.taobao.org/mirrors/node/v8.9.3/node-v8.9.3-linux-x64.tar.gz
RUN mv node-v8.9.3-linux-x64.tar.gz  /usr/local/node/  && ls
RUN cd /usr/local/node/ && tar -xzvf node-v8.9.3-linux-x64.tar.gz && ls

RUN ln -s /usr/local/node/node-v8.9.3-linux-x64/bin/node /usr/local/bin/node
RUN ln -s /usr/local/node/node-v8.9.3-linux-x64/bin/npm /usr/local/bin/npm

CMD ["node","-v"]

RUN yum install -y unzip zip
RUN unzip forever.zip -d /usr/lib/node_modules/
RUN ln -s /usr/lib/node_modules/forever/bin/forever /usr/bin/forever

RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
ENTRYPOINT ["sh", "server_start.sh"]
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值