In this short article we talk about how to get Yape running in a docker container to avoid having to setup python on your machine.
It's been a while since the last article in this series, so let's recap quickly.
We talked about using matplotlib to create a basic graph. Afterwards we introduced dynamic graphs using bokeh.
In the 3rd part we talked about generating heatmaps using monlbl data.
A common theme in the feedback I got over various channels was the difficulty setting up an environment to run any of these. So we decided to make it a bit easier and I teamed up with Murray to create a Dockerfile for his excellent tool Yape. Github page
Of course you'll have to have docker installed and running your machine for this.
Dockerfile
A rather simple docker definition based on the official python images:
FROM python:3
WORKDIR .
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
Requirements.txt contains the packages necessary to get yape up and running in there:
altgraph==0.10.2
py-dateutil==2.2
bdist-mpkg==0.5.0
certifi==2017.7.27.1
cffi==1.10.0
chardet==3.0.4
idna==2.5
bokeh==0.12.6
macholib==1.5.1
matplotlib==2.0.2
pandas==0.20.3
modulegraph==0.10.4
numpy==1.13.1
py2app==0.7.3
pycparser==2.18
pyparsing==2.0.1
python-dateutil==1.5
pytz==2013.7
requests==2.18.3
six==1.4.1
urllib3==1.22
zope.interface==4.1.1
To build the image, simply check out the github repository and then run docker build:
git clone https://github.com/murrayo/yape.git
docker build -t yape .
(until the pull request has been merged, use https://github.com/kazamatzuri/yape.git)
This will take a couple of minutes depending on the speed of your machine/internet connection.
Afterwards you can run yape on your pButtons file like this:
docker run -v `pwd`/in:/data --rm --name yape-test yape \
./extract_pButtons.py -o /data \
/data/pButtons.html
docker run -v `pwd`/in:/data --rm --name yape-test yape \
./graph_pButtons.py -o /data/charts /data
We're using
/in
in the current working directory and map it to /data
in the container. We'll get the pButtons.html from there and also output the graphs into that directory.
Note
I had to add parameters to the scripts, we're merging them over into the official yape repository (pull request)
another good use of containers ;)