zoukankan      html  css  js  c++  java
  • wait-for-it.sh脚本控制docker-compose启动顺序详解

    原文:https://blog.csdn.net/wuzhong8809/article/details/82500722?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

    说明
    本文介绍了 tomcat 依赖于 mysql 的启动的一个例子

    使用 docker-compose + wait-for-it.sh

    基础知识
    Dockerfile CMD 命令的作用
    先看个例子:

    === Dockerfile ==============

    FROM ubuntu:16.04

    CMD ["echo", "hello my ubuntu"]

    ==========================

    以上面这个Dockfile 为例

    创建它

    >docker build -t myubt .

    docker run 不带参数

    >docker run myubt

    hello my ubuntu

    执行 CMD ["echo", "hello my ubuntu"]

    docker run 带参数

    >docker run myubt echo haha

    haha

    CMD ["echo", "hello my ubuntu"] 没有执行,执行的是 echo haha

    docker-compose command 命令的作用
    command 用于覆盖容器启动后默认执行的命令

    看下面这个例子:

    把下面这个文件和刚才的Dockfile放到一个目录

    ==== docker-compose.yml =====

    version: '3'

    services:

    web:

    build: .

    command: ["echo", "hiahia"]

    ===========================

    运行

    >docker-compose up

    看到 hiahia 被输出

    wait-for-it.sh
    下载地址:https://github.com/vishnubob/wait-for-it

    使用方式:

    >wait-for-it.sh www.baidu.com:80 -- echo baiduok

    说明:

    通过端口是否处于监听连接的状态来判断服务是否已启动,如果服务启动了,就执行 -- 之后的指令。

    比如下文例子中将要判断mysql 是否已启动,如果启动就执行 catalina.sh run

    >wait-for-it.sh host_name : 3306 -- catalina.sh run

    下面介绍使用 command 指令 + wait-for-it 脚本 来做 启动依赖

    启动依赖
    最后一点就是需要用把 wait-for-it.sh打包到镜像中

    ====Dockerfile========================

    FROM tomcat:latest

    COPY ./wait-for-it.sh /usr/local/tomcat/bin/

    ===================================

    完整代码见:

    https://github.com/zeson99/docker_demos/tree/master/depend_on_demo

    测试:

    >docker-compose up

    参考
    https://docs.docker.com/compose/startup-order/
    ————————————————
    版权声明:本文为CSDN博主「Zonson9999」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/wuzhong8809/article/details/82500722

  • 相关阅读:
    vue.api
    v-resource
    vue.js路由
    computed watch methods
    vue.js生命周期
    flex布局
    字符截取 slice substr substring
    原生Ajax书写
    jq动画
    css 3动画
  • 原文地址:https://www.cnblogs.com/wangmo/p/13042925.html
Copyright © 2011-2022 走看看