1

I have a script or "console" that starts during my docker build via my Dockerfile. When this is ran, it runs fine and opens its interactive prompt. My problem is, I can't seem to pass commands into that interactive prompt.

Here is the part of my dockerfile that matters:

 RUN ./iiq console RUN import init.xml RUN quit 

I expect to see dependencies from init.xml brought in but instead I get:

Step 24/26 : RUN ./iiq console ---> Running in d1bf75e69674 Setting iiq.hostname to d1bf75e69674-console > Removing intermediate container d1bf75e69674 ---> 3832361dee0e Step 25/26 : RUN import init.xml ---> Running in 8a3cd63c7789 /bin/sh: import: command not found 

The greater than sign in the steps is opening this console and waiting for input it seems, I'm just not sure how to properly send it in. I can build my container without this step and do it manually so it works that way.

1 Answer 1

1

The Docker build process is completely non-interactive.

Interactive command in Dockerfile

But I do this in a different, you may try this in your script.

testargs.sh

#!/bin/ash echo "Arg is $1" 

Here is my Dockerfile

FROM alpine copy testargs.sh /testargs.sh RUN chmod +x /testargs.sh ARG arg1 RUN ./testargs.sh $arg1 

Now Build the above dockerfile.

docker build --no-cache --build-arg arg1=testingarg1 -t test . 

As you can see it's not interactive but at least it accepts the dynamic argument.

enter image description here

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.