Get your Xyzzy on: docker pull emcniece/dockeryourxyzzy
- Github: emcniece/DockerYourXyzzy
- Docker Hub: emcniece/dockeryourxyzzy
latest
,4
(Dockerfile)
This is a containerized build of the Pretend You're Xyzzy Cards Against Humanity clone.
⚠ Version 3 (April 2020) is a vastly simplified Docker image, may break if upgrading from version 2. It no longer features multi-step builds.
The PYX project can be used in Docker format for development, outputting the built files, or running in production.
An example stack of PYX with a Postgres database and an Ngrok tunnel can be found in docker-compose.yml:
# Run PYX/Postgres stack
docker-compose up -d --build
Once the containers are running, you can:
- Visit http://localhost:8080/game.jsp to play locally
- Visit http://localhost:4040/status to find your Ngrok URL
- Visit https://#####.ngrok.io to share publicly
Keep the container up with SQLite and war:exploded jetty:run
:
docker run -d \
-p 8080:8080 \
--name pyx-dev \
emcniece/dockeryourxyzzy:latest
# Visit http://localhost:8080 in your browser
# Or, start a bash session within the container:
docker exec -it pyx-dev bash
Settings in build.properties
can be modified by passing them in the container CMD:
docker run -d \
-p 8080:8080 \
emcniece/dockeryourxyzzy:latest \
mvn clean package war:war \
-Dhttps.protocols=TLSv1.2 \
-Dmaven.buildNumber.doCheck=false \
-Dmaven.buildNumber.doUpdate=false \
-Dmaven.hibernate.url=jdbc:postgresql://postgres/pyx
Also are able to do more complex overrides by making a copy of build.properties and mounting that in overrides.
docker run -d \
-p 8080:8080 \
-v $(pwd)/build.properties:/overrides/build.properties \
emcniece/dockeryourxyzzy:latest
This project can be built and run by any of the 3 following methods: CLI docker build
commands, CLI make
commands, or Docker-Compose.
The Makefile documents the frequently used build commands:
# Build default (full / runtime) image
make image
# Run container
make run
# Run in debug mode (no container CMD):
make run-debug
Docker commands can be found in the Makefile:
# Build full/runtime image
docker build -t pyx
Force building with the --build
flag:
# Run PYX/Postgres stack
docker-compose up -d --build
- Figure out how to run
:latest
properly with a Postgres db - Import & run sql files if specified for the Postgres db
- Buildtime config customization via Maven flags
- Runtime config customization via Maven flags
- Fetch GeoIP database in entrypoint.sh
Haven't actually got this working with an external Postgres db yet- Now available via
docker-compose
- Now available via
- Versioning and tagging isn't done well here because Pretend You're Xyzzy doesn't seem to tag or version.