docker ENTRYPOINT上的多个命令

发布于 2021-02-01 13:03:55

我正在尝试构建自定义的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

但是我不知道这是否是一个好习惯,或者是否可行。

关注者
0
被浏览
132
1 个回答
  • 面试哥
    面试哥 2021-02-01
    为面试而生,有面试问题,就找面试哥。

    如果要在入口点运行许多命令,最好的想法是创建一个bash文件。例如 commands.sh像这样的

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

    然后,在DockerFile中,将入口点设置为commands.shfile(在其中执行并运行所有mand )

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

    之后,每次启动容器时。commands.sh将执行并运行您需要的所有命令。你可以在这里看看https://github.com/dangminhtruong/drone-
    chatwork



推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看