Docker: Difference between revisions
Line 23: | Line 23: | ||
[[File:Docker deploy example.png]] | [[File:Docker deploy example.png]] | ||
== Run == | == Run == |
Revision as of 21:02, 17 February 2024
Python Dockerfile for Flask
FROM python:3.11-slim as build EXPOSE 5000/tcp WORKDIR /app ## build python environment from requirements.txt COPY requirements.txt . RUN pip install -r requirements.txt ## copy everything except the database directory (will be mapped) \ ## note that for this implementation, the app needs to initialize its database copy . . RUN rm -Rf app/database ## launch the flask app ENTRYPOINT FLASK_APP=/app/app.py flask run --host=0.0.0.0 --port=5000
Pycharm Example
Run
Not ideal because it resets whenever you start the container. Need a better way:
sudo docker run -it -p 8888:8888 jupyter/pyspark-notebook jupyter notebook --no-browser --allow-root --ip=0.0.0.0
Then access it from a browser:
You'll need the token from the docker terminal the first time accessing the notebook.
Get Shell to Container
Get a list of running containers and find the id for your specific container:
[bpopp@p1 pubs]$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e0fd0ef0e5c0 jupyter/all-spark-notebook "tini -g -- jupyter …" 22 hours ago Up 22 hours 0.0.0.0:8888->8888/tcp kind_sanderson
Launch a shell
sudo docker exec -it e0fd0ef0e5c0 /bin/bash
Or as root
sudo docker exec -u root -it e0fd0ef0e5c0 /bin/bash
To install something
pip install plotnine --proxy http://myproxy.somewhere.com:3128