This is a project for CIS 578.
Audrey Altman, Vishakha Kumar, and Nicole Stark
- Docker
- Docker-compose
- Python 3.5+ (with asyncio and aiohttp)
- libssl-dev (apt-get install libssl-dev)
- libz-dev (apt-get install libz-dev)
- luarocks (apt-get install luarocks)
- luasocket (luarocks install luasocket)
- mongoc -- (Installation instructions: http://mongoc.org/libmongoc/current/installing.html)
- Thrift 0.14.0 (./configure --with-lua --with-cpp --with-py) -- (Thrift tutorial: https://www.youtube.com/watch?v=NK6hz2JM89w)
Run docker-compose script to run all the containers:
$ docker-compose up
Seed the database with default recommendations for each user:
$ sh script/upload_recommendation.sh
Check the default recommendations:
$ sh script/get_recommendations.sh
Add user ratings for various movies:
$ sh sh script/upload_user_rating.sh
Run a batch job to generate new recommedations based on user ratings:
$ sh script/run-batch-job.sh
Check the updated recommendations:
$ sh script/get_recommendations.sh
Stop docker containers that started from docker-compose script:
$ docker-compose down
Parts of this codebase were adaped from:
- https://github.com/delimitrou/DeathStarBench/tree/master/mediaMicroservices
- https://github.com/proywm/vendingmachine_tutorial
To compile vending_machine.thrift:
thrift --gen cpp vending_machine.thrift
thrift --gen py vending_machine.thrift
thrift --gen lua vending_machine.thrift
- To create docker image from docker file: $ docker build -t yourusername/repository-image-name .
- List docker images: $ docker images -a
- Retag the image with a version number: $ docker tag yourusername/repository-image-name yourdockerhubusername/repository-image-name:version_1
- Docker-Hub login: $ docker login
- Push the local image to docker-hub $ docker push abiodunjames/example-node-app:v1
- List docker containers: $ docker ps -a
- Clean up old volumes $ docker volume prune
Ref:
- https://stackify.com/docker-build-a-beginners-guide-to-building-docker-images/
- https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes
- Run docker-compose script to run all the containers: $ docker-compose up
- Stop docker containers that started from docker-compose script: $ docker-compose down
Build and run commands:
- sudo docker build -t audreyaltman/movies-project .
- sudo docker push audreyaltman/movies-project:latest
- sudo docker-compose up
- sh ./script/
- sudo docker-compose down
Remove exited docker images: $ sudo docker rm $(sudo docker ps --filter status=exited -q)
Force kill any containers which won't exit due to memory issues $ sudo docker kill $(sudo docker ps -q)
Cleanup local docker: $ sudo docker volume prune