command: ["/bin/sh","-c"] args: ["command one; command two && command three"]
command ["/bin/sh", "-c"] says "run a shell, and execute the following instructions". The args are then passed as commands to the shell. In shell scripting a semicolon separates commands, and
&& conditionally runs the following command if the first succeed. In the above example, it always runs
command one followed by
command two, and only runs
command three if
command two succeeded.
Alternative: In many cases, some of the commands you want to run are probably setting up the final command to run. In this case, building your own Dockerfile is the way to go. Look at the RUN directive in particular.
~ Answered on 2015-11-24 08:13:10