Your system needs the following installed:
- Docker - DigitalOcean has a great tutorial to do this on ubuntu 16.04.
- Docker-compose - If you have pip installed this can be installed with
pip install docker-compose
Initialize the database and load in the data
cd server
pipenv install --dev
python manage.py migrate
python manage.py loadwages ../resources
To launch your server run
$ source ./dev_env.sh
$ docker-compose up
You can then direct your browser to localhost:80 to see the site.
If you are working on the server, restart the server container to see changes.
Do this by hitting ctrl+c
in the terminal you ran docker-compose up
in,
then run docker-compose up
again.
If you add a dependency to the server you need to rebuild the docker containers
in order for it to get picked up. This would be the case if you ran
pip install [anything]
. Add the requirement to server/requirements.txt
and then run
$ docker-compose build oneoff
$ docker-compose build web
If you need to connect to a container for debugging use:
docker exec -it <container_id> /bin/bash
First run docker-compose up
and python manage.py loadwages ../resources
to
gather static files, build the client, and load in the data.
docker save -o mnpay_nginx.image mnpay_nginx
scp mnpay_nginx.image <remote_server>/<remote_path>
docker save -o mnpay_web.image mnpay_web
scp mnpay_web.image <remote_server>/<remote_path>
On the remote server.
docker load -i mnpay_nginx.image
docker load -i mnpay_web.image
docker-compose -f docker-compose-prod.yml up