I'm trying to build a custom tcserver docker image. But I'm having some problems starting the webserver and the tomcat.
As far as I understand I should use ENTRYPOINT to run the commands I want.
The question is, is it possible to run multiple commands with ENTRYPOINT?
Or should I create a small bash script to start all?

Basically what I would like to do is:

ENTRYPOINT /opt/pivotal/webserver/instance1/bin/httpdctl start && /opt/pivotal/webserver/instance2/bin/httpdctl start && /opt/pivotal/pivotal-tc-server-standard/ start instance1 -i /opt/pivotal/pivotal-tc-server-standard && /opt/pivotal/pivotal-tc-server-standard/ start instance2 -i /opt/pivotal/pivotal-tc-server-standard 

But I don't know if that is a good practice or if that would even work.

3

3 Answers

In case you want to run many commands at entrypoint, the best idea is to create a bash file. For example commands.sh like this

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

And then, in your DockerFile, set entrypoint to commands.sh file (that execute and run all your commands inside)

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

After that, each time you start your container, commands.sh will be execute and run all commands that you need. You can take a look here

4

You can use something like this:

ENTRYPOINT ["/bin/sh", "-c" , "<command A> && <command B> && <command C>"]

1

You can use npm concurrently package.

For e.g.

ENTRYPOINT ["npx","concurrently","command1","command2"] 

It will run them in parallel.

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy