代码之家  ›  专栏  ›  技术社区  ›  radicaled

docker入口点上的多个命令

  •  0
  • radicaled  · 技术社区  · 7 年前

    我正在尝试构建一个定制的tcserver docker映像。但是我在启动Web服务器和tomcat时遇到了一些问题。
    据我所知,我应该使用ENTRYPOINT来运行我想要的命令。
    问题是,是否可以使用ENTRYPOINT运行多个命令?
    或者我应该创建一个小bash脚本来启动所有的脚本?


    ENTRYPOINT /opt/pivotal/webserver/instance1/bin/httpdctl start && /opt/pivotal/webserver/instance2/bin/httpdctl start && /opt/pivotal/pivotal-tc-server-standard/standard-4.0.1.RELEASE/tcserver start instance1 -i /opt/pivotal/pivotal-tc-server-standard && /opt/pivotal/pivotal-tc-server-standard/standard-4.0.1.RELEASE/tcserver start instance2 -i /opt/pivotal/pivotal-tc-server-standard
    

    但我不知道这是否是一个好的做法,或者这是否会奏效。

    1 回复  |  直到 7 年前
        1
  •  53
  •   Wantyapps Truong Dang    5 年前

    commands.sh 这样地

    #!/bin/bash
    mkdir /root/.ssh
    echo "Something"
    cd tmp
    ls
    ...
    

    然后,在DockerFile中,将entrypoint设置为 文件(在其中执行和运行所有命令)

    COPY commands.sh /scripts/commands.sh
    RUN ["chmod", "+x", "/scripts/commands.sh"]
    ENTRYPOINT ["/scripts/commands.sh"]
    

    commands.sh 将执行并运行您需要的所有命令。你可以看看这里 https://github.com/dangminhtruong/drone-chatwork

        2
  •  22
  •   Latif    5 年前

    您可以使用以下内容:

    ENTRYPOINT ["/bin/sh", "-c" , "<command A> && <command B> && <command C>"]

        3
  •  1
  •   Aminadav Glickshtein    5 年前

    你可以使用npm concurrently 包裹

    例如。

    ENTRYPOINT ["npx","concurrently","command1","command2"]
    

    它将使它们并行运行。