Get your Xyzzy on: docker pull emcniece/dockeryourxyzzy
- Github: emcniece/DockerYourXyzzy
- Docker Hub: emcniece/dockeryourxyzzy
latest
,run
,2
,2-run
(Dockerfile)base
,2-base
(Dockerfile)dev
,2-dev
(Dockerfile)
This is a containerized build of the Pretend You're Xyzzy Cards Against Humanity clone.
This multi-step Dockerfile contains 3 stages: base
, dev
, and run
. The base
image will copy the compiled files over to an output directory, and the dev
and run
images will run the project.
The PYX project can be used in Docker format for development, outputting the built files, or running in production.
Run & copy the .war
and .jar
files to ./xyz-output/
(container is removed after it executes):
docker run --rm \
-v $(PWD)/xyz-output:/output \
emcniece/dockeryourxyzzy:base
ls -al ./xyz-output
Keep the container up with SQLite and war:exploded jetty:run
:
docker run -d \
-p 8080:8080 \
--name pyx-dev \
emcniece/dockeryourxyzzy:dev
# 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:dev \
mvn clean package war:war \
-Dhttps.protocols=TLSv1.2 \
-Dmaven.buildNumber.doCheck=false \
-Dmaven.buildNumber.doUpdate=false \
-Dmaven.hibernate.url=jdbc:postgresql://postgres/pyx
Project build.properties
commands can be overridden by altering the default container CMD:
docker run -d \
-p 8080:8080 \
emcniece/dockeryourxyzzy:run
An example production stack of PYX with a Postgres container can be found in docker-compose.yml:
# Run PYX/Postgres stack
docker-compose up -d --build
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
# Build base image
make image-base
# Build dev image
make image-dev
# Build runtime image
make image-run
# 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
# Build dev image
docker build -t pyx --target dev
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
- Versioning and tagging isn't done well here because Pretend You're Xyzzy doesn't seem to tag or version.