node.js – Docker – 从基本映像覆盖或删除ENTRYPOINT

我正在使用Docker(版本1.12.2,构建bb80604)使用Gatling(负载测试工具)NodeJS设置一个简单的图像/容器.所以,我拉了this Docker/Gatling base image并创建了我自己的Dockerfile来安装NodeJS.

但是,上面的Docker / Gatling基本图像已经定义了ENTRYPOINT,可以直接调用Gatling,然后自动退出容器.它看起来像这样:

ENTRYPOINT ["gatling.sh"]

我想要实现的是:我想运行第二个命令(我自己的NodeJS脚本来解析测试结果),但到目前为止我找不到解决方案(我尝试重写ENTRYPOINT,ENTRYPOINT的不同组合和CMD,但没有成功).

这是我当前的Dockerfile的样子:

FROM denvazh/gatling:2.2.3

RUN apk update \
&& apk add -U bash \
&& apk add nodejs=6.7.0-r0

COPY simulations /opt/gatling/user-files/simulations
COPY trigger-test-and-parser.sh /opt/gatling/

RUN chmod +x /opt/gatling/trigger-test-and-parser.sh

ENTRYPOINT ["bash","/opt/gatling/trigger-test-and-parser.sh"]

这是我用来根据我的Dockerfile构建我的图像的命令:

docker build --no-cache -t gatling-nodejs:v8 .

这是我用来运行我的容器的命令:

docker run -i -v "$PWD/results":/opt/gatling/results -v "$PWD":/opt/gatling/git.campmon.com/rodrigot/platform-hps-perf-test gatling-nodejs:v8

这是我想在容器启动后执行的shellscript(trigger-test-and-parser.sh)(它应该触发Gatling,然后运行我的NodeJS解析器):

gatling.sh -s MicroserviceHPSPubSubRatePerfTest.scala
node publish-rate-to-team-city.js

任何想法或调整,所以我可以在容器启动后运行这两个命令?

非常感谢!

最佳答案
将ENTRYPOINT设置为/usr/bin/env.然后将CMD设置为您想要运行的.

相关文章

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Li...
1、什么是docker?答:docker是开源的应用容器引擎;开发人员把他们的应用及依赖包打包发布到容器当中。...
1、什么是namespace? 答:名称空间,作用隔离容器 2、namespace隔离有那些? 答:ipc:共享内存、消息队...
1、Docker能在非Linux平台(Windows+MacOS)上运行吗? 答:可以 2 、如何将一台宿主机的docker环境...
环境要求: IP hostname 192.168.1.1 node1 项目规划: 容器网段:172.16.10.0/24 NGINX:172.16.10.10...
文档上传地址:https://files.cnblogs.com/files/lin-strive/07-docker%E8%B7%A8%E4%B8%BB%E6%9C%BA%E7...