关于dockerfile:使用Dockerfile部署项目

7次阅读

共计 2672 个字符,预计需要花费 7 分钟才能阅读完成。

应用 Dockerfile 部署我的项目

以 Nginx 部署我的项目为例

Docker 装置及 Docker 公有仓库部署流程

Harbor 在 arm 架构下亲测编译胜利

Linux 装置 Harbor 亲测胜利功

制作根底镜像

以公有仓库 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 http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz && \
    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 http://nginx.org/download/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 \
    --http-log-path=/data/logs/nginx-main/access.log \
    --http-client-body-temp-path=/data/temps/nginx-main/client_body_temp \
    --http-proxy-temp-path=/data/temps/nginx-main/proxy_temp \
    --http-fastcgi-temp-path=/data/temps/nginx-main/fastcgi_temp \
    --http-uwsgi-temp-path=/data/temps/nginx-main/uwsgi_temp \
    --http-scgi-temp-path=/data/temps/nginx-main/scgi_temp \
    --with-http_stub_status_module \
    --with-http_ssl_module \
    --with-http_realip_module \
    --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
正文完
 0