如何使用json数组格式为Docker ENTRYPOINT运行多个语句?
在开始我的服务之前,我需要设置ulimit
和sysctl
,所以我一直在我的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
,否则脚本将不会执行。