add dockerfile

This commit is contained in:
Denis Lehmann 2022-05-01 12:16:07 +02:00
parent bf1c58760b
commit ac0acd7255
2 changed files with 28 additions and 0 deletions

12
Dockerfile Normal file
View file

@ -0,0 +1,12 @@
FROM python:3.11-rc-alpine
ENV cloud_name raincloud
RUN apk update && apk add git
RUN python -m venv /opt/venv
RUN . /opt/venv/bin/activate && python -m pip install git+https://github.com/Deleh/raincloud
RUN . /opt/venv/bin/activate && python -m pip install gunicorn
EXPOSE 8000/tcp
ENTRYPOINT . /opt/venv/bin/activate && gunicorn --bind=0.0.0.0:8000 "raincloud:create_app(base_path='/var/www/raincloud',cloud_name='${cloud_name}')"

View file

@ -87,6 +87,22 @@
| =cloudName= | Name of the raincloud | =str= | =raincloud= | =bobsCloud= |
| =basePath= | Base path of the raincloud | =str= | | =/var/lib/raincloud= |
*** Docker
A self-contained =Dockerfile=, based on [[https://www.alpinelinux.org/][Alpine Linux]], is available in the repository.
You can use it to build a /raincloud/ image locally with the following command:
: $ docker build -t raincloud:latest -f Dockerfile
A container of the image exposes raincloud at port =8000= and uses the base directory =/var/www/raincloud=.
Use dockers =-p= and =-v= flag to map the port on your host and to mount a base directory:
: $ docker run -p <local_port>:8000 -v <path_to_local_base_directory>:/var/www/raincloud raincloud:latest
If you want to change the cloud name you can pass the =cloud_name= environment variable to the container:
: $ docker run -p <local_port>:8000 -v <path_to_local_base_directory>:/var/www/raincloud -e "cloud_name=podcloud" raincloud:latest
** Configuration
/raincloud/ provides two configuration options which can be passed to =raincloud.create_app()=: