公司某部门的PHP本地开发环境 DNMP讲解

git地址

gitee dnmp


github dnmp

语法
dockerfile保留字说明:
FROM 指定基础镜像
ARG 定义构建时需要的参数,可在docker build --build-arg key=value时传入相应的键值对,ARG仅在build镜像时有效,镜像被创建和容器启动后无效
ENV 构建镜像过程中设置环境变量
RUN 构建时需要运行的命令
WORKDIR 指定创建容器后,终端默认登录进来的工作目录
docker-compose.yml 语法说明
卷宗挂载 :rw 读写 :ro 只读
${xxxx} 从.env文件读取变量

Nginx

docker compose

docker-compose.yml
watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAU1dJTkdJTkcgICBWSU5F,size_20,color_FFFFFF,t_70,g_se,x_16
    nginx:
      build:
        #dockerfile在哪里
        context: ./services/nginx
        #配置参数
        #args会传入dockerfile的ARG中,等效于docker build --build-arg
        args:
          #Nginx版本
          # NGINX_VERSION  nginx:1.19.1-alpine
          NGINX_VERSION: nginx:${NGINX_VERSION}
          #容器包路径
          #CONTAINER_PACKAGE_URL mirrors.aliyun.com
          CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL}
          #Nginx安装包
          #NGINX_INSTALL_APPS  空
          NGINX_INSTALL_APPS: ${NGINX_INSTALL_APPS}
      #容器名
      container_name: nginx
      #端口映射  冒号左边是本地端口 冒号右边是容器端口
      ports:
        - "${NGINX_HTTP_HOST_PORT}:80"
        - "${NGINX_HTTPS_HOST_PORT}:443"
      //卷宗挂载 (:rw表示读写 :ro表示只读)
      volumes:
        #宿主机的该yml文件所在目录的上一层 映射 容器的/www
        - ${SOURCE_DIR}:/www/:rw
        #ssl证书存放路径
        - ${NGINX_SSL_CERTIFICATE_DIR}:/ssl:rw
        #Nginx配置文件存放目录
        - ${NGINX_CONFD_DIR}:/etc/nginx/conf.d/:rw
        #nginx配置文件
        - ${NGINX_CONF_FILE}:/etc/nginx/nginx.conf:ro
        #fastcgi配置文件
        - ${NGINX_FASTCGI_PHP_CONF}:/etc/nginx/fastcgi-php.conf:ro
        #fastcgi参数
        - ${NGINX_FASTCGI_PARAMS}:/etc/nginx/fastcgi_params:ro
        #nginx日志存放目录
        - ${NGINX_LOG_DIR}:/var/log/nginx/:rw
      #环境变量
      environment:
        #时区
        TZ: "$TZ"
      #容器挂了是否重启
      restart: always
      #将容器加入某个网络
      networks:
        - default

Dockerfile

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAU1dJTkdJTkcgICBWSU5F,size_20,color_FFFFFF,t_70,g_se,x_16
​    #从docker build --build-arg 读取NGINX_VERSION的值
    ARG NGINX_VERSION
    #基于 nginx:1.19.1-alpine镜像
    FROM ${NGINX_VERSION}
    ARG TZ
    ARG NGINX_VERSION
    ARG CONTAINER_PACKAGE_URL
    ARG NGINX_INSTALL_APPS
    ENV INSTALL_APPS=",${NGINX_INSTALL_APPS},"
    RUN if [ "${CONTAINER_PACKAGE_URL}" != "" ]; then \
            sed -i "s/dl-cdn.alpinelinux.org/${CONTAINER_PACKAGE_URL}/g" /etc/apk/repositories; \
        fi
    RUN if [ -z "${INSTALL_APPS##*,certbot,*}" ]; then \
            echo "---------- Install certbot ----------"; \
            apk add --no-cache certbot; \
        fi
    #进入容器(e.g.docker exec -it xxx sh)后所在的目录
    WORKDIR /www

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值