如何使用json数组格式为Docker ENTRYPOINT运行多个语句?

在开始我的服务之前,我需要设置ulimitsysctl ,所以我一直在我的ENTRYPOINT进行以下ENTRYPOINT

ulimit -n 4096; sysctl -p; start_service

但似乎如果我想使用CMD作为默认参数ENTRYPOINT ,我必须使用json数组格式。

但我不知道如何使用json数组格式运行多个语句。

最简单的方法可能是将其作为脚本来执行(这里start_service被replace为一个简单的echo来testing)

 $ cat start.sh #!/bin/bash ulimit -n 4096; sysctl -p; echo $@ $ cat Dockerfile FROM ubuntu COPY . /tmp CMD ["test"] ENTRYPOINT ["/tmp/start.sh"] $ docker build -t test . ... $ docker run test test $ docker run test "hello world" hello world 

请记住在构build容器之前chmod 755 start.sh ,否则脚本将不会执行。