Example of Running Ponzu with Docker
This docker-compose contains 2 docker containers:
- web - a basic nginx front end, with Javascript ajax accessing the /api
- admin - an example ponzu container
The admin contain is based on the official Ponzu Docker image
Running the example
# build the containers
docker-compose build
#start the containers in the background
docker-compose up -d
Then follow these steps:
- Visit the http://localhost:3000/admin to configure Ponzu.
- Add several songs http://localhost:3000/admin/contents?type=Song
- Visit http://localhost:3000/ to see the rest service accessed via AJAX
Stop the containers:
docker-compose stop
Web Container
This nginx web container takes any incoming requests and if it matches /api*
or /admin*
it will then route it to the exposed ports :8080 on the ponzu container
Ponzu - Admin Container
The ponzu container has a small startup script which symlinks and logs or database files into a Docker Volume. If you need access to the ponzu logs, it is exposed a Volume.
Accessing the Ponzu terminal in Development
Make sure you have no running docker images docker ps
. Then use the following command to start an interactive shell into the docker container.
# make sure the containers are built
docker-compose build
# start and tty into the container
docker run -v $(pwd)/admin:/go/src/project -it docker_admin
# run a ponzu command
ponzu generate content message title:"string" description:"string"
After the above generate command message.go
content type is now available in your local filesystem. Use docker-compose build
then docker-compose up -d
to see the new model in the admin.