Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to run my python script on docker?

enter image description hereenter image description hereI am trying to run my python script on docker. I tried different ways to do it but not able to run it on docker. My python script is given below:

import os  print ('hello')  

I have already installed docker on my mac. But i want to know how i can make images and then push it to docker after that i wanna pull and run my script on docker itself.

like image 825
Pulkit Avatar asked Nov 09 '17 13:11

Pulkit


People also ask

Is docker good for Python?

Docker is a containerization tool used for spinning up isolated, reproducible application environments. It is a popular development tool for Python developers. The tutorials and articles here will teach you how to include Docker to your development workflow and use it to deploy applications locally and to the cloud.


2 Answers

Alright, first create a specific project directory for your docker image. For example:

mkdir /home/pi/Desktop/teasr/capturing 

Copy your dockerfile and script in there and change the current context to this directory.

cp /home/pi/Desktop/teasr/capturing.py /home/pi/Desktop/teasr/dockerfile /home/pi/Desktop/teasr/capturing/  cd /home/pi/Desktop/teasr/capturing 

This is for best practice, as the first thing the docker-engine does on build, is read the whole current context.

Next we'll take a look at your dockerfile. It should look something like this now:

FROM python:latest  WORKDIR /usr/local/bin  COPY capturing.py .  CMD ["capturing.py", "-OPTIONAL_FLAG"] 

The next thing you need to do is build it with a smart name. Using dots is generally discouraged.

docker build -t pulkit/capturing:1.0 . 

Next thing is to just run the image like you've done.

docker run -ti --name capturing pulkit/capturing:1.0 

The script now get executed inside the container and will probably exit upon completion.

Edit after finding the problem that created the following error:

standard_init_linux.go:195: exec user process caused "exec format error" 

There's a different architecture beneath raspberry pi's (ARM instead of x86_64), which COULD'VE BEEN the problem, but wasn't. If that would've been the problem, a switch of the parent image to FROM armhf/python would've been enough.

Source

BUT! The error kept occurring.

So the solution to this problem is a simple missing Sha-Bang on top of the python script. The first line in the script needs to be #!/usr/bin/env python and that should solve the problem.

Source

like image 149
samprog Avatar answered Sep 28 '22 15:09

samprog


Going by question title, and if one doesn't want to create docker image but just want to run a script using standard python docker images, it can run using below command

docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp python:3.7-alpine python script_to_run.py 
like image 39
Shambu Avatar answered Sep 28 '22 16:09

Shambu