zoukankan      html  css  js  c++  java
  • 使用mustache 做为docker容器运行动态配置工具

    很多时候我们需要在启动容器的时候基于配置文件运行,如果在配置比较简单的时候我们可以通过环境变量
    注入,同时当前12 factors 越来越融入大家的开发中了(对于配置通过环境变量处理),但是好多老的软件
    架构,或者是比较复杂的软件架构可能没有提供通过环境变量的运行方式,我们可以结合mustache 请打的
    模版处理能力,同时注入环境变量,便捷的生成系统的运行配置文件

    环境准备

    项目很简单就是一个nginx 的简单docker,同时基于了一个纯bash 编写的mustache 工具,快速生成配置文件

    • docker-compose.yaml
      注意docker-compose 环境变量content,我们会结合这个生成nginx index page 内容
     
    version: "3"
    services: 
      app:
        build: ./
        ports: 
        - "8080:80"
        environment: 
        - "content=dalong demo web page"
    • dockerfile
      主要是mo 工具的安装,配置文件的拷贝还有就是关于容器entrypoint 的编写
     
    FROM nginx:alpine
    RUN apk add --no-cache wget bash && 
    # install mustache as script
        wget -O /usr/bin/mo https://git.io/get-mo && 
        chmod a+x /usr/bin/mo && 
        apk del wget && 
        mkdir -p /app
    COPY index.html.template /app/
    COPY entrypoint.sh /
    RUN chmod +x /entrypoint.sh
    ENTRYPOINT ["/entrypoint.sh"]
    CMD ["nginx", "-g", "daemon off;"]

    entrypoint.sh:
    使用mo结合mustache 模版,生成nginx index page 内容

     
    #!/bin/bash
    mo /app/index.html.template > /usr/share/nginx/html/index.html
    exec "$@"

    index.html.template:
    就是一个简单的html 页面

     
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Mustache for docker config demo</title>
    </head>
    <body>
        <div class="applogo">
             {{content}}
        </div>
    </body>
    </html>

    启动&&测试

    • 启动
    docker-compose up -d

    说明

    以上是一个简单的实践,实际中我们可以基于这个编写更加强大的配置文件生成,这样我们制作的容器镜像可以做到方便统一,维护省事

    参考资料

    https://github.com/tests-always-included/mo
    https://github.com/rongfengliang/mustache-for-docker-conf-docker-compose

  • 相关阅读:
    java 输出质数
    各大OJ
    使用css让图片居中
    poj 1250 Tanning Salon
    Struts2 中整合DWR3实现文件上传
    C语言I博客作业02
    The first essay.
    tar命令
    wBox Demo
    缓存记录
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/11314899.html
Copyright © 2011-2022 走看看