使用Dockerfile部署项目

网友投稿 259 2022-10-19

使用Dockerfile部署项目

使用Dockerfile部署项目

以Nginx部署项目为例

制作基础镜像

以私有仓库192.168.1.182:5000/centos为基础镜像,构建一个nginx基础镜像,其他环境都依赖这个基础镜像做出相应镜像

注意:dockerfile里面的安装命令尽量在一行完成,最后删除不必要的组件,以缩小体积,加快启动速度

cat Dockerfile-base

############################################ # version : nginx-withssl-v1 # desc : 安装nginx-1.10.2.tar.gz ############################################ # 设置继承镜像 FROM 192.168.1.182:5000/centos # 下面是一些创建者的基本信息 MAINTAINER liang "liang@xxx.com" # 设置环境变量 ENV NGINX_VERSION 1.10.2 20220224 RUN mkdir -p /data/apps/nginx-main && mkdir -p /data/logs/nginx-main && mkdir -p /data/temps/nginx-main RUN yum -y install make wget zlib zlib-devel gcc-c++ libtool openssl openssl-devel && \ mkdir -p /data/software && \ cd /data/software && \ wget && \ tar zxvf pcre-8.35.tar.gz && \ cd pcre-8.35 && \ ./configure && \ make && make install && \ pcre-config --version && \ wget -O /data/software/nginx-1.10.2.tar.gz && \ cd /data/software && \ tar -zxvf nginx-1.10.2.tar.gz && \ cd /data/software/nginx-1.10.2 && \ ./configure --prefix=/data/apps/nginx-main \ --pid-path=/data/logs/nginx-main/nginx.pid \ --lock-path=/data/apps/nginx-main/nginx.lock \ --error-log-path=/data/logs/nginx-main/error.log \ --\ --\ --\ --\ --\ --\ --with-\ --with-\ --with-\ --with-pcre=/data/software/pcre-8.35 && \ make && \ make install && \ rm -rf /pcre-8.35.tar.gz /nginx-1.10.2.tar.gz /pcre-8.35 /nginx-1.10.2 && \ yum -y remove wget git gcc-c++ libtool openssl-devel zlib-devel && \ yum clean all EXPOSE 443 80

创建nginxbase 镜像

$ docker build -f Dockerfile-base -t 192.168.1.182:5000/nginx-main-base . $ docker push 192.168.1.182:5000/nginx-main-base

比如开发环境或者测试环境需要搭建nginx, 以nginx-main-base为基础镜像

cat Dockerfile-debug

FROM 192.168.1.182:5000/nginx-main-base MAINTAINER liang "liang@xxx.com" 2022030614 ADD /conf/nginx-debug.conf /data/apps/nginx-main/conf/nginx.conf ADD /abcdchat.crt /data/apps/nginx-main/abcdchat.crt ADD /abcdchat.key /data/apps/nginx-main/abcdchat.key ENTRYPOINT ["/data/apps/nginx-main/sbin/nginx"]

创建nginx-debug镜像

$ docker build -f Dockerfile-debug -t 192.168.1.182:5000/nginx-main-debug . $ docker push 192.168.1.182:5000/nginx-main-debug

运行nginx容器

docker rm -f nginx-main-debug-container docker run -d -p 443:443 -p 8181:80 --name="nginx-main-debug-container" -v `pwd`/logs:/data/logs/nginx-main -v `pwd`/datas:/data/datas/nginx 192.168.1.182:5000/nginx-main-debug

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:通过命令验证docker容器相当一个轻量级的Linux运行环境,且每个容器内都有一个属于自己的文件系统,容器之间相互隔离
下一篇:剑指Offer之Java算法习题精讲排列与N叉树
相关文章

 发表评论

暂时没有评论,来抢沙发吧~