biligunb
biligunb

Reputation: 41

Apache PredictionIO - Docker run failed

I have been trying http://predictionio.apache.org/install/install-docker/ this tutorial. I have successfully built Docker image however when I try to run docker run i get the Can't open /etc/predictionio/pio-env.sh error.

  1. docker build -t predictionio/pio pio
  2. docker run -ti predictionio/pio

PS: If I comment out the last line CMD ["sh", "/usr/bin/pio_run"] I can build and run docker image successfully. I can open the file too from docker bash.

enter image description here

Upvotes: 0

Views: 401

Answers (3)

DzikiMarian
DzikiMarian

Reputation: 423

Just resolved it on my machine.

When you cloned repository on Windows, git converted end of line symbols from Unix-style (\n) to Windows style (\r\n).

You need to open file C:\wherever-you-cloned-pio-repository\predictionio\docker\pio\pio_run and change it back (for e.g. using Visual Studio Code, or Notepad++). Then you need to rebuild the image and it should work.

Also for the future you may want to disable automatic conversion Disable git EOL Conversions

Upvotes: 0

KDW
KDW

Reputation: 525

Your output states you are running Windows. Did you use the default command prompt or did you use docker terminal? I had the same error messages in the past on Windows but mysteriously it disappeared after trying the tutorial again. I am not sure what I did different except I might possibly used docker instead of the default command prompt...

Could you also try using docker-compose instead of plain docker commands as described in the tutorial?

Ensure your storage (Postgres, MySQL or ElasticSearch) is running before starting PIO as well.

Upvotes: 0

Igor Litvinovich
Igor Litvinovich

Reputation: 2502

I think you need to grant permissions to execute this file. add the following line at the end of your Dockerfile

RUN chmod +x pio_run.sh 

also, you might need to change CMD to ENTRYPOINT like following:

ENTRYPOINT ["sh","/usr/bin/pio_run.sh"]

Upvotes: 0

Related Questions